一直不是特别清楚,特此总结下。
四个抽象的基类:
处理字节流:(二进制文件)
InputStream 方法:read();read(byte[] b) 读取写入b中,返回读取的字节数;read(byte[] b, offset, len)将输入流中的最多len个数组放在b中。
OutputStream 方法: write(byte[] b)
继承自它们的节点流: FileInputStream 和 FileOutputStream ,可以接受物理io节点(如File)作为参数。
处理字符流 (Unicode编码,文本文件)
Reader 方法:read(), read(char[] b), read(char[] b, offset, len)
Writer 方法: write(char [] ch), write(char [], len), write(String s), write(String s, off, len)
继承自他们的节点流: FileReader 和 FileWriter
处理流: 接收节点流作为参数。
如PrintStream, BufferedReader, BufferedWriter
io系统提供的两个转换流:InputStreamReader和OutputStreamWriter,都是将字节流转化为字符流
读写文本文件:
BufferedReader br= new BufferedReader(new FileReader(“a.txt"))
line = br.readLine();
...
br.close();
BufferedWriter bw=new BufferedWriter(new FileWriter(“b.txt”));
bw.write(“abcdfefe”);
...
bw.close();
二进制文件:
内层使用FileInputStream,需要使用InputStreamReader将字节流转换成字符流,之后传入BufferedReader中。
BufferedReader br = new BufferedReader(new FileInputReader(new FileInputStream(“a")));
br.readLine();
…..
写入可以与上面使用字符写入相同。
java的输入输出流
原文:http://www.cnblogs.com/CarrieCui/p/5119605.html