FileReader
单个字符逐一读取:
@Test
public void readFile01() {
String filePath = "d:\\HelloWorld.txt";//提前创建编辑一个txt文件
FileReader fileReader = null;
int data = 0;
//1.创建FileReader对象
try {
fileReader = new FileReader(filePath);
//循环读取 单个字符单个字符读取
while ((data = fileReader.read()) != -1) {
System.out.print((char) data);
}
} catch (IOException e) {
System.out.println(e);
} finally {
try {
fileReader.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
使用read(buf)读取,返回实际读取到的字符数:
@Test
public void readFile02() {
String filePath = "d:\\HelloWorld.txt";//提前创建编辑一个txt文件
FileReader fileReader = null;
int readLen = 0;
char[] buf = new char[8];
//1.创建FileReader对象
try {
fileReader = new FileReader(filePath);
//循环读取 使用read(buf)读取,返回实际读取到的字符数
//如果返回-1,说明文件读取结束
while ((readLen = fileReader.read(buf)) != -1) {
System.out.print(new String(buf,0,readLen));
}
} catch (IOException e) {
System.out.println(e);
} finally {
try { //关闭资源
fileReader.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
FileWriter
示例:
@Test
public void write(){
String filePath = "d:\\note.txt";//提前创建一个空白txt文件
//创建FileWriter对象
FileWriter fileWriter = null;
try {
fileWriter = new FileWriter(filePath);
//write(int) 写入单个字符
fileWriter.write('H');
//write(char[] ch) 写入字符数组
char[] chars = {'a','b','c'};
fileWriter.write(chars);
//write(char[],off,len) 写入指定数组的指定部分
fileWriter.write("你好Java".toCharArray(),2,4);
//write(String str) 写入整个字符串
fileWriter.write("耶耶耶");
//write(String,off,len) 写入字符串指定部分
fileWriter.write("开心每一天",0,2);
//在数据量大的情况下可以循环写入
} catch (IOException e) {
throw new RuntimeException(e);
}finally{
//对应FileWriter,一定要关闭流close,或者flush刷新才能真正把数据写入到文件中
try {
fileWriter.close();//close等价于flush()+关闭
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}