字符输入流
时间: 2023-07-08 20:11:18 浏览: 48
在Java中,字符输入流用于从字符输入源(如文件、字符串等)读取字符数据。常用的字符输入流有`FileReader`、`InputStreamReader`和`CharArrayReader`等。
其中,`FileReader`是用于读取文件的字符输入流,它继承自`InputStreamReader`类,可以将字节流转换为字符流。使用`FileReader`时,需要指定要读取的文件路径,例如:
```java
FileReader reader = new FileReader("example.txt");
int ch;
while ((ch = reader.read()) != -1) {
// 处理读取到的字符
}
reader.close();
```
上面的代码中,`FileReader`读取指定路径下的`example.txt`文件,`read()`方法每次读取一个字符,返回值是读取到的字符的ASCII码,如果已经到达文件末尾,则返回-1。读取完毕后,需要调用`close()`方法关闭流。
除了`FileReader`,还有`InputStreamReader`和`CharArrayReader`等字符输入流,它们的用法类似,只是读取的数据来源不同。需要根据具体的需求选择不同的字符输入流。
相关问题
字节输入流和字符输入流
字节输入流和字符输入流是Java I/O中的两种不同的流类型。
字节输入流(Byte InputStream)是以字节为单位读取数据的流。它是处理二进制数据最基本的流类型。字节输入流的顶级父类是InputStream,它的子类包括FileInputStream、ByteArrayInputStream等。字节输入流主要用于读取二进制文件,如图像、音频或视频文件等。
哪个流属于面向字符输入流
InputStreamReader 是面向字符输入流的流。它将字节流转换为字符流,并且可以指定字符编码方式。例如,可以通过如下代码创建一个面向字符输入流的 InputStreamReader:
```
InputStream inputStream = new FileInputStream("example.txt");
Reader reader = new InputStreamReader(inputStream, "UTF-8");
```
其中,第二个参数指定了字符编码方式为 UTF-8。通过这个 InputStreamReader 对象,可以方便地读取 example.txt 文件中的文本内容。