Reader
约 263 字小于 1 分钟
2024-08-08
Reader 是Java的 IO 库提供的另一个输入流接口。和 InputStream 的区别是,InputStream 是一个字节流,即以 byte 为单位读取,而 Reader 是一个字符流,即以 char 为单位读取
| nputStream | Reader |
|---|---|
| 字节流,以byte为单位 | 字符流,以char为单位 |
| 读取字节(-1,0~255):int read() | 读取字符(-1,0~65535):int read() |
| 读到字节数组:int read(byte[] b) | 读到字符数组:int read(char[] c) |
java.io.Reader 是所有字符输入流的超类,它最主要的方法是
public int read() throws IOException;这个方法读取字符流的下一个字符,并返回字符表示的 int,范围是 0~65535。如果已读到末尾,返回 -1
FileReader
FileReader 是 Reader 的一个子类,它可以打开文件并获取 Reader。下面的代码演示了如何完整地读取一个 FileReader 的所有字符
public static void main(String[] args) throws IOException {
try (Reader reader = new FileReader("D:\\marui\\a.txt")) {
char[] buff = new char[1000];
int len;
while ((len = reader.read(buff)) != -1) {
System.out.println(String.valueOf(buff, 0 , len));
}
}
}