BufferedReader 和 fileinputstream
时间: 2023-10-24 21:30:35 浏览: 103
BufferedReader 和 FileInputStream 是 Java 中用于读取文件内容的两个类。
FileInputStream 是一个用于读取文件的输入流,它继承自 InputStream 类。通过 FileInputStream,你可以逐字节地读取文件的内容。它提供了多个 read() 方法用于从文件中读取字节,并返回读取到的字节数据。通常情况下,你需要在 FileInputStream 中使用 try-catch 块来捕获可能出现的异常。
BufferedReader 是一个带有缓冲区的字符输入流,它继承自 Reader 类。通过 BufferedReader,你可以按行读取文本文件的内容。相比于直接使用 FileInputStream 逐字节读取,使用 BufferedReader 可以提高读取效率。BufferedReader 的 readline() 方法可以一次读取一行数据,并返回一个字符串。
在读取文件时,你可以先使用 FileInputStream 打开文件,并将其传递给 BufferedReader 构造函数,以创建一个 BufferedReader 对象。然后,你可以使用 BufferedReader 的 readline() 方法来逐行读取文件内容,并进行处理。
总结起来,FileInputStream 适合读取二进制文件或者需要逐字节处理的场景,而 BufferedReader 适合读取文本文件并按行处理的场景。
相关问题
java BufferedReader转FileInputStream
BufferedReader是用来读取字符流的,而FileInputStream是用来读取字节流的,它们是两种不同的输入流。因此,不能直接将BufferedReader转换为FileInputStream。
如果需要将BufferedReader读取到的字符流转换为字节流,可以使用OutputStreamWriter将字符流转换为字节流,然后再将其写入到FileOutputStream中。示例代码如下:
```java
File file = new File("example.txt");
// 创建一个BufferedReader来读取文件内容
BufferedReader reader = new BufferedReader(new FileReader(file));
// 创建一个FileOutputStream来写入字节流
FileOutputStream outputStream = new FileOutputStream("example.bin");
// 创建一个OutputStreamWriter将字符流转换为字节流
OutputStreamWriter writer = new OutputStreamWriter(outputStream);
// 读取文件内容并写入到字节流中
String line;
while ((line = reader.readLine()) != null) {
writer.write(line);
}
// 关闭流
reader.close();
writer.close();
outputStream.close();
```
用Java读取文件的5种方法-BufferedReader,FileInputStream,文件,扫描仪,RandomAccessFile
好的,以下是对你的问题的回答:
Java 提供了多种读取文件的方法,下面是其中的五种:
1. BufferedReader
使用 BufferedReader 可以按行读取文件,它的读取效率比较高。以下是一个例子:
```
try (BufferedReader br = new BufferedReader(new FileReader("filename.txt"))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
}
```
2. FileInputStream
使用 FileInputStream 可以按字节读取文件,适合读取二进制文件。以下是一个例子:
```
try (FileInputStream fis = new FileInputStream("filename.txt")) {
byte[] buffer = new byte[1024];
int n = 0;
while ((n = fis.read(buffer)) != -1) {
System.out.write(buffer, 0, n);
}
}
```
3. FileReader
使用 FileReader 可以按字符读取文件,适合读取文本文件。以下是一个例子:
```
try (FileReader fr = new FileReader("filename.txt")) {
char[] buffer = new char[1024];
int n = 0;
while ((n = fr.read(buffer)) != -1) {
System.out.print(buffer, 0, n);
}
}
```
4. Scanner
使用 Scanner 可以按照指定的分隔符读取文件,适合读取文本文件。以下是一个例子:
```
try (Scanner scanner = new Scanner(new File("filename.txt"))) {
scanner.useDelimiter(System.getProperty("line.separator"));
while (scanner.hasNext()) {
System.out.println(scanner.next());
}
}
```
5. RandomAccessFile
使用 RandomAccessFile 可以读取任意位置的文件内容,适合读取大文件。以下是一个例子:
```
try (RandomAccessFile raf = new RandomAccessFile("filename.txt", "r")) {
byte[] buffer = new byte[1024];
int n = 0;
while ((n = raf.read(buffer)) != -1) {
System.out.write(buffer, 0, n);
}
}
```
以上就是 用Java读取文件的5种方法,包括 BufferedReader,FileInputStream,文件,扫描仪,RandomAccessFile。
阅读全文