文件字符输入流
与FileInputStream的区别 FileReader创建char数组 字符输入
FileInputStream创建byte数组 字节输入
只能读取普通文本,无法读取声音,视频等文件读取文本内容时比较方便快捷。
与字节输入流差不多。注意创建的数组是char[],不是byte[]
fileReader = new FileReader("testfile");
char[]chars = new char[4];
int readcount = 0;
while ((readcount = fileReader.read(chars))!=-1){
System.out.println(new String(chars,0,readcount));
}
文件字符输出流
可以直接写入String类型
fileWriter = new FileWriter("filewriter");
//1.建立一个char数组,把数组全部内容写入文件
char[] chars = {
'你','好','啊','哈'};
int readcount =0;
fileWriter.write(chars);
//写入数组部分内容
fileWriter.write(chars,0,2);
//2.直接写入String字符串
fileWriter.write("我在学java");
fileWriter.write("\n")
fileWriter.write("输入一个换行符")
fileWriter.flush();
对比字节输出流
不能直接写入String,需要通过getBytes把字符串转为数组
String string = "我正在学习文件字符输出流";
//把字符串转变成数组getBytes()
byte[]bytes2 = string.getBytes();
fos.write(bytes2);
使用FileReader和FileWriter只能拷贝普通文本文件
没有reader.avilable() 只能while
reader = new FileReader("D:\\新建文件夹\\test1.txt");
writer = new FileWriter("C:\\Users\\ThinkPad\\Desktop\\学习笔记\\test1.txt");
char[]chars = new char[4];
int readcount = 0;
while ((readcount=reader.read(chars))!=-1){
writer.write(chars);
}