前面已经讲过InputStream和OutputStream类在读写文件时操作的都是字节,如果希望在程序里操作字符,使用这二个类就不太方便了,为此jdk提供了字符流,同字节流一样,字符流也有二个抽象的顶级父类,分别是Reader和Writer。其中Reader是字符输入流,用于从某个源设备读取字符。Writer是字符输出流,用于向某个目标设备写入字符,它们也有很多子类。
字符流操作文件
在程序开发,经常需要对文本文件的内容进行读取,如果想从文件中直接读取字符,便可以使用字符输入流FileReader,通过此流可以从关联的文件读取一个或一组字符。
import java.io.;
public class example{
public static void main(String[] args)throws Exception{
FileReader reader = new FileReader(reader.txt);
int ch;
while((ch=reader.read())!=-1){
System.out.println((char) ch);
}
reader.close();
}
}
文件中写入字符
import java.io.;
public class example{public static void main(String[] args)throws Exception{
FileWriter writer = new FileWriter(reader.txt);
String str =“国服第一韩信”;
writer.write(str);
writer.write(“\r\n”);
writer.close();
}
}
FileWriter同FileOutputStream一样,如果指定文件不存在,就好创建文件,再写入数据,如果文件存在,则会首先清空文件的内容,再进行写入,如果想在文件的末尾追加数据,同样需要调整重载的构造方法,
FileWriter writer = new FileWriter(“read.txt”,true);
修改后,再次运行即可在文件中追加内容的效果。