前面我们听到了文件字节流FileOutputStream和FileInputputStream主要式针对字节的输入和输出流的操作,
但是在我们变成里面字符使用的比较多,因此Java提供了字符输入和输出流的操作.分别是FileReader和FileWriter
这两个构造方法,下面我们通过具体的代码来说下.
package Test;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Demo {
public static void main(String[] args) {
File f=new File("word.txt");
//创建字符输出流
FileWriter fw=null;
try {
fw= new FileWriter(f,false);//true表示在源文件后追加的效果.
String str="天行健,自强不息,地势坤,厚德载物,这里式结尾,没有了";
fw.write(str);//将字符串写入到文本文档里面
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if (fw!=null) {
try {
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//创建字符输出流.将文件的信息读取到我们的想要输出的位置.
FileReader rw=null;
try {
rw=new FileReader(f);
char arr2[]=new char[1024];//创建缓冲区.
int count;//表示已读出的数据.
try {
while((count=rw.read(arr2))!=-1) {
//循环读取文件里面的数据,直到文件的最后一行,当返回为-1的时候表示文件已经读取完成.所有字符已经读完.
System.out.println("读取文件的数据为:"+new String(arr2,0,count));
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if (rw!=null) {
try {
rw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
1.FileWriter创建字符输出流,同样有2个参数,一个参数就是一个文件对象,后面的bool数值表示的就是是否在文件后面醉驾。
2.new char创建字符串缓冲区.
3.new String传入一个包装类,传入一个字符串缓冲区,将字符串缓冲区的字符直接显示出来。这个过程式java后台自动
实现的,后面有2个参数,分别从字符穿的开始索引位置到结束索引位置.
4.循环读取缓冲区的数据,当当到了最后一行的时候会返回-1表示文件的内容已经读完成.
5.close方法表示关闭。