java -- 文本文件读写

文本文件写操作

基本流程

1、创建FileWriter对象

1
2
3
4
5
FileWriter fw = new FileWriter("~/a.txt"); //覆盖写入



FileWriter fw = new FileWriter("~/a.txt",true); //追加写入

2、写入字符串及刷新缓冲区

1
2
fw.write("HelloWorld!");
fw.flush();

3、关闭IO,通知系统释放相关资源

1
fw.close();

换行

不同操作系统的换行转义字符存在差异,总结如下:

系统换行转义字符
windows\r\n
mactintosh\r
linux\n

文本文件读操作

通过字符进行读取

1
2
3
4
5
6
7
8
9
10
//1.创建FileReader对象
FileReader fr = new FileReader("a.txt");

//2.读取单个字符
int c;

//3.循环读取,结束标志为“-1”
while (-1 != (c = fr.read())){
System.out.print((char)c);
}

通过字符数组读取

1
2
3
4
5
6
7
8
9
10
11
12
//1.创建FileReader对象
FileReader fr = new FileReader("a.txt");

//2.读取文件到字符数组
char[] str = new char[1024];
// len记录读取长度
int len;

//3.循环读取,结束标志为“-1”
while ((len = fr.read(str)) != -1){
System.out.print(str,0,len); // 这里必须指定str长度
}

文本文件高效读写——BufferedReader & BufferedWriter

基本操作

基本读写方法和流程相同,只不过构造函数略有差异

1
2
3
4
5
6
7
//BufferedReader构造函数
BufferedReader br = new BufferedReader(new FileReader("a.txt"));
//本质上是将字符暂存在输入流缓冲区,加快读取速率

//BufferedWriter构造函数
BufferedWriter bw = new BufferedWriter(new FileWriter("a.txt"));
//本质上是将字符暂存在输出流缓冲区,加快写入速率

特殊函数

1
2
3
4
5
//BufferedWriter
void newLine(); //写一个换行符,由系统决定

//BufferedReader
String readLine(); //读取并返回一行数据,不包括换行符,为空则返回NULL