文件字符流

文件字符流

FileReader

read每一次读取单个字符,返回该字符,如果到文件末尾则返回-

read(char[ ]):批量读取多个字符到数组,返回读取到的字符数,如果到文件末尾返回-

new String(char[] )将char[]转换成String

new String(char[],off,len):将char[]的指定部分转换为String

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import java.io.FileReader;
import java.io.IOException;

/**
* @author zss
*/
public class Test {
public static void main(String[] args) throws IOException {
Test test=new Test();
test.fileReader();
}
public void fileReader() throws IOException {
String filePath="D:\\壁纸\\hello.txt";
FileReader fileReader=new FileReader(filePath);
int flag;
while ((flag=fileReader.read())!=-1){
System.out.print((char)flag);
}
fileReader.close();
}
}
1
2
3
4
char []buff=new char[5];
while ((flag=fileReader.read(buff))!=-1){
System.out.print(new String(buff,0, buff.length));
}

image-20220703170939054

FileWrite

在这里也可以分别使用追加模式和覆盖模式,在构造器中加入true可以使其在尾端加上

当我们使用之后,必须关闭该对象或者刷新,否则这个不会到文件中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/**
* @author zss
*/
public class Test {
public static void main(String[] args) throws IOException {
Test test=new Test();
test.fileWrite();
}
public void fileWrite() throws IOException {
String filePath="D:\\壁纸\\hello.txt";
FileWriter fileWriter=new FileWriter(filePath,true);
String content="风雨之后,即见彩虹";
fileWriter.write(content);
fileWriter.write(content,1,3);
fileWriter.write('g');
//fileWriter.flush();
fileWriter.close();
}
}