读取Java IO 中的字符流,用于处理文本数据
时间: 2024-09-19 21:15:47 浏览: 46
在Java I/O中,读取字符流(Character Stream)主要用于处理文本数据,例如字符串。常用的类有`BufferedReader`和`InputStreamReader`。
1. **BufferedReader**: 这是一个高级类,基于`Reader`,它可以缓冲读取的数据,提高读取性能。通过构造函数,你可以传入一个底层的`InputStreamReader`或其他`Reader`实例。使用`readLine()`方法可以逐行读取文本,直到遇到换行符。
```java
try (BufferedReader br = new BufferedReader(new FileReader("input.txt"))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
```
2. **InputStreamReader**: 它是一个转换器,将字节输入流(如`FileInputStream`)转换成字符输入流。通常与`BufferedReader`配合使用,因为`InputStreamReader`本身并不能直接读取字符。
```java
try (InputStream in = new FileInputStream("input.txt");
InputStreamReader reader = new InputStreamReader(in, StandardCharsets.UTF_8);
BufferedReader bufferedReader = new BufferedReader(reader)) {
String line = bufferedReader.readLine();
// ...处理每一行
} catch (IOException e) {
e.printStackTrace();
}
```
在这个例子中,UTF_8 字符集被指定用于解码输入流中的字节。
阅读全文