Day32-文件字符流的说明、FileReader、FileWriter、节点流和处理流的区别和联系
文件字符流的说明
- FileReader 和FileWriter 介绍
FileReader
- 单个字符读取
package com.ghy.reader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class FileReader01 {
public static void main(String[] args) {
//路径
String filePath = "D:\\code\\LoveStory.txt";
FileReader fileReader = null;
int data = 0;
//1.创建FileReader对象
try {
fileReader = new FileReader(filePath);
//循环读取 使用read方法,单个字符读取
while ((data = fileReader.read())!=-1){
System.out.print((char)data);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if(fileReader!=null){
try {
fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
输出
小赵爱情故事。
- 利用数组读取
package com.ghy.reader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class FileReader02 {
public static void main(String[] args) {
//路径
String filePath = "D:\\code\\LoveStory.txt";
FileReader fileReader=null;
int readLen = 0;
char[] buf = new char[8];
try {
//创建FileReader对象
fileReader = new FileReader(filePath);
//循环读取,使用read(buf),返回的是实际读取到的字符数
//返回-1,说明读取完了
while((readLen=fileReader.read(buf))!=-1){
System.out.print(new String(buf,0,readLen));
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if(fileReader!=null){
try {
fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
输出
小赵爱情故事。
FileWriter
package com.ghy.writer;
import java.io.FileWriter;
import java.io.IOException;
public class FileWriter01 {
public static void main(String[] args) {
//路径
String filePath = "D:\\code\\LoveStory.txt";
FileWriter fileWriter =null;
char[] data01 = {'I','A','O','Z','H','A','O'};
try {
//创建FileWriter对象,追加模式
fileWriter = new FileWriter(filePath,true);
//1.写入单个字符
fileWriter.write('X');
//2.写入指定数组
fileWriter.write(data01);
//3.写入指定数组的指定部分
fileWriter.write("喜欢小龚",0,2);//起始位置为0,长度为2,写入喜欢
//4.写入整个字符串
fileWriter.write("小龚~");
//5.写入字符串的指定部分
fileWriter.write("嘿嘿嘿嘿嘿嘿",0,3);
//在数据量大的情况下,可以使用循环操作
} catch (IOException e) {
e.printStackTrace();
} finally {
//对于FileWriter,一定要关闭流,或者用Flash(更新)才能真正的把数据写入文件
if(fileWriter!=null){
try {
//fileWriter.flash();
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("坠入爱的故事!");
}
}
}
}
输出
坠入爱的故事!
查看