两者分别为InputStreamReader和OutputStreamWrtier的子类;
有关InputStreamReader和OutputStreamWrtier移步
http://www.jianshu.com/writer#/notebooks/3732626/notes/3446668
FileReader(文件读出流)
-
构造函数
1.FileReader (File file);接收一个File对象表示从该对象处读取数据;
2.FileReader (String name);接受一个文件的字符串地址;
-
方法
(1)read()方法继承自InputStreamReader
1.public int read(),空参数read方法每次从流中读取一个字符长度的数据;返回值是对应字符的编码;
2.public int read(char[] cbuf, int offset, int length),每次从流中读取length字符长度的数据,存入指定char[]数组总从offset出开始存储;返回值是读取了多少个字符
3.public int read(char[] cbuf)返回值是读取了多少个字符
(2)String getEncoding() 返回正在读取的流中的编码形式
(3)注意:需要关闭输出流
-
例子
// 第一步指定输入流位置 File file = new File("d:\\text.txt");//hello java! //建立文件输入流 FileReader input = new FileReader(file); long length = file.length(); char[] c =new char[(int)length]; //循环读取 int len = 0; while((len = input.read() ) != -1){ System.out.print(len + ",");//104,97,108,108,111,32,106,97,118,97,33, } //while((len = input.read(c)) != -1){
// System.out.println(len);//11
// }
input.close();
注意同一个文件在一个程序只能读取一次,不是因为len被置为-1了,而是流指针已经到了流的最后。即read()返回的值已经为-1;除非你再见立一条流来读取。
FileWriter
-
构造函数
1.FileWriter (File file);接收一个File对象表示从往该文件处写数据;
2.FileWriter (File file,Boolean append);append为true时候在文件结尾处接着写入。
3.FileWriter (String name);接收一个文件的字符串地址;
4.FileWriter (String name,Boolean append);同2.
-
方法
(1)write():
1.public void write(int c);//c是指定Unicode编码中字符对应的整数值
2.public void write(char[] cbuf,int off, int len);
3.public void write(String str, int off, int len);
4.public void write(String str);//字符流相比于字节流可以直接写入字符串
- 例子
// 第一步指定输入流位置
File file = new File("d:\text1.txt");//hello java!
//建立文件输入流
FileWriter fw = new FileWriter(file,true);
String str = "hello android!!!!!";
//写入数据
fw.write(str);
fw.write(111);
fw.close();