文件字符流
FileReader
文件字符输入、输出流FileReader可以看成字节输入流FileInPutStream的一种延伸/
他俩最大的区别是一个是按字符操作文件,一个是按字节操作文件
不能返回char,即data不能定义为int,这里的字符有可能是中文字符,占3字节,而char就2字节,会乱码,所以返回int
fr.read()返回读取的字符,返回值是int(读取的字符个数)
int data =0;
//字符:char 字节:byte
while((data=fr.read())!=-1){//读取一个字符,而不是字节
System.out.print((char)data);
}
利用字符数组多个字符读取
package com.qian;
import java.io.FileReader;
/**
* 使用FileReader读取文件
*
*/
//文件字符输入、输出流FileReader可以看成字节输入流FileInPutStream的一种延伸
// 他俩最大的区别是一个是按字节操作文件,一个是按字符操作文件
public class Demo09 {
public static void main(String[] args) throws Exception {
//1.创建FileReader 文件字符输入流
FileReader fr=new FileReader("r:\\hello.txt");
//2.读取
//2-1单个字符读取
int data =0;
//不能返回char,这里的字符有可能是中文字符,占3字节,
// 而char就2字节,会乱码,所以返回int
//fr.read()返回读取的字符,返回值是int(读取的字符个数)
while((data=fr.read())!=-1){//读取一个字符,而不是字节
System.out.print((char)data);
}
//2-2多个字符读取 利用char数组
//字符:char 字节:byte
// char [] buf=new char[2];
// int count=0;
// while((count=fr.read(buf))!=-1){
// System.out.println(new String(buf,0,count));
// }
//3.关闭
fr.close();
}
}
ystem.out.println(new String(buf,0,count));
// }
//3.关闭
fr.close();
}
}
FileWriter
package com.qian;
import java.io.FileWriter;
/**
*使用FileWriter写入文件
*
*/
public class Demo10
{
public static void main(String[] args) throws Exception {
//1.创建FileWriter对象
FileWriter fw=new FileWriter("r:\\writer.txt");
//2.写入
for (int i = 0; i <10 ; i++) {
fw.write("什么逆天东西\r\n");
fw.flush();//缓存中压入存储器
//记得flush刷新,不然只会存在缓冲中,到不了硬盘
}
//3.关闭
fw.close();
System.out.println("执行完毕");
}
}