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));
}
}
}