try (BufferedReader reader = new BufferedReader(new FileReader(FILE_NAME)))为什么要用Buffered包装 FileReader
时间: 2023-10-15 20:05:40 浏览: 92
使用 `BufferedReader` 包装 `FileReader` 的主要原因是为了提高读取文件的效率。`FileReader` 读取文件时是一个字符一个字符地读取,每次读取都会访问磁盘。而 `BufferedReader` 可以读取一定数量的字符并将其存储在缓冲区中,这样可以减少对磁盘的访问次数,从而提高读取文件的效率。此外,`BufferedReader` 还提供了一些额外的方法,例如 `readLine()` 可以一次读取一行文本。因此,使用 `BufferedReader` 包装 `FileReader` 可以使文件读取更加高效和方便。
相关问题
先将从键盘输入的一首诗词存入文件“poem.txt",然后再从文件”poem.txt“内读出后加上行号打印在屏幕上,读取键盘的输入标准输入流类System.in,使用Buffered包装System.in,调用BufferedReader的Readline()方法按行读取,键盘以输入结束字样作为结束输入的标志,然后使用BufferedReader和BufferedWriten这两个缓冲流实现文件poem的读写操作
好的,我会按照您的要求进行操作。以下是Java代码:
```java
import java.io.*;
public class PoemReadWrite {
public static void main(String[] args) {
try {
// 从键盘读取输入
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter writer = new BufferedWriter(new FileWriter("poem.txt"));
System.out.println("请输入诗词(以end结束输入):");
String line;
while ((line = reader.readLine()) != null) {
if (line.equals("end")) {
break;
}
writer.write(line);
writer.newLine();
}
reader.close();
writer.close();
// 从文件读取诗词并加上行号打印在屏幕上
BufferedReader fileReader = new BufferedReader(new FileReader("poem.txt"));
int lineNumber = 1;
while ((line = fileReader.readLine()) != null) {
System.out.println(lineNumber + ". " + line);
lineNumber++;
}
fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
您可以将以上代码保存为名为`PoemReadWrite.java`的文件,然后使用Java编译器进行编译并执行。输入诗词时,每输入一行按回车键即可,输入完成后在新的一行输入`end`表示结束输入。程序会将输入的诗词存入文件`poem.txt`中,并在屏幕上打印出带有行号的诗词。
在Eclipse软件中编写 TestBufferedReader0510类, 使用Buffered包装形式读取当前 java文件,为每行加上行号,再 连同内容一并输出到屏幕上。
好的,下面是 TestBufferedReader0510 类的代码:
```java
import java.io.*;
public class TestBufferedReader0510 {
public static void main(String[] args) {
try {
// 读取当前 java 文件
File file = new File("TestBufferedReader0510.java");
BufferedReader reader = new BufferedReader(new FileReader(file));
// 定义行号变量
int lineNumber = 1;
String line = null;
// 逐行读取并输出
while ((line = reader.readLine()) != null) {
// 输出行号和内容
System.out.println(lineNumber + ": " + line);
lineNumber++;
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
这段代码首先读取当前的 TestBufferedReader0510.java 文件,然后使用 BufferedReader 包装,每次读取一行并输出到屏幕上,同时加上行号。
阅读全文