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("坠入爱的故事!");
}
}
}
}
输出
坠入爱的故事!
查看

节点流和处理流


节点流和处理流的区别和联系

本文介绍了Java中用于读取和写入字符文件的FileReader和FileWriter类,展示了如何单个字符读取和利用数组批量读取文件内容。同时,解释了节点流和处理流的区别,节点流直接操作数据源,而处理流是对节点流进行包装以提供更高级别的功能。示例代码演示了FileWriter的多种写入方式,包括单个字符、数组、部分数组和字符串。最后,讨论了在大量数据写入时的注意事项,强调了关闭流的重要性。
1376

被折叠的 条评论
为什么被折叠?



