标签:本质 fileread 准备 构造 nal reader 编码 adl java
文件分割符:Windows中使用\
推荐路径使用方式(反斜杠):D:\KuGou\123.jpg (D:\\KuGou\\123.jpg)
io异常的处理方式:io一定要写finally;
使用流一定要记得关闭!
创建源->选择流->操作(准备容器等)->关闭 有点类似于搬家
流的本质是数据传输
一 、IO流的分类
A.根据处理数据类型的不同分为:字符流和字节流
B.根据数据流向不同分为:输入流和输出流
C.按功能分:节点流(一线的,离源最近的)和处理流
二、字节流与字符流 输入流与输出流
字符流只能处理字符数据 字节流可以处理所有数据类型
只要是处理纯文本数据,就优先考虑使用字符流。 除此之外都使用字节流。
输入流:读操作 输出流:写操作
三、IO流对象
字节输入流 :InputStream
字节输出流:OutputStream
字符输入流: Reader 对象FileReader
字符输出流:Writer 对象FileWriter
转换流对象 InputStreamReader:字节到字符的桥梁
OutputStreamWriter:字符到字节的桥梁(可以一个字符串一个字符串的写入数据了)
处理流:1.缓冲流(在最基本的四个对象上加上Buffered) 字节流没有新增方法 字符流存在新增方法
使用新增方法不能发生多态
2.转换流 字节流转字符流(主要功能是解决乱码问题 编码与解码 char->byte为编码),构造时
可以指定编码集合,如InputStream in = new InputStreamReader(System.in,"UTF-8");
四、常用方法
1.Reader常见方法
int read();返回读到的字符比如要显示时 (char)b, 读到流末尾返回-1
int read(char[] cbuf) 将字符读入数组 返回的是读到字符的个数
close()关闭流
2.Writer常见方法
void write(char[] cbuf) 写入字符数组到流中
flush() 刷新该流的缓冲
close()关闭流
3.FileWriter
FileWriter(String fileName) 根据给定的文件名构造一个 FileWriter 对象。
eg:(省略异常处理部分 FileWriter fw=null try{}………………)
FileWriter fw=new FileWriter("test.txt"); fw.write("abcdefg"); fw.flush(); fw.close();
4.FileReader
FileReader(String fileName) 在给定从中读取数据的文件名的情况下创建一个新 FileReader。
eg:
FileReader fr=new FileReader("test.txt"); int ch=0; while((ch=fr.read())!=-1){ System.out.print((char)ch); } fr.close();
eg2:在前基础上使用read(char[] cbuf)
char[] buf=new char[1024];
5.作为修饰的带缓冲流
BufferedReader br=new BufferedReader(new FileReader("test.txt"));
特有方法readLine()读一行 返回读到的字符串
标签:本质 fileread 准备 构造 nal reader 编码 adl java
原文地址:http://www.cnblogs.com/jiangbei/p/6664943.html