【发布时间】:2017-12-01 05:53:47
【问题描述】:
我对 java 比较陌生,对如何使用缓冲阅读器从文件中读取感到好奇。这样做的原因是我正在上课并被分配做一个简单的停止者密码,我应该解密一个文本文件,创建一个新文件,并将解密的文本放入该文件中。我可以使用扫描仪和一个 10KB 的小文件来做到这一点,但是在处理我要测试的 100MB 大文本文件时它非常慢。 这是我应该读取文件内容的代码。
public static void main(String[] args)
{
BufferedReader br = null;
FileReader file = null;
String line = null;
String all = null;
try
{
file = new FileReader("myfile.txt");
br = new BufferedReader(file);
while ((line = br.readLine()) != null) {
all += line;
}
}catch(Exception e)
{
System.out.println("nope");
}
System.out.println(all);
}
如果有人能指出我正确的方向,那就太好了。
提前致谢
【问题讨论】:
-
对
all使用StringBuilder而不是String -
我也是java新手。但关注“缓冲区阅读器如何工作??”这一点。当我们解密文件时,硬盘中存在的内存通过流传递到 RAM,然后被解密。解密后,我们必须再次发送回硬盘,因为我们必须存储它。因此,为此我们使用文件阅读器,但它工作缓慢并通过流一一发送数据。因此,在缓冲区读取器的帮助下创建了一个缓冲区,这使得 w 传输速度更快,因为它使要发送的数据成为缓冲区。
-
逐行读取文件,使用
java.util.Scanner.hasNextLine()和nextLine。它不会将所有行读入内存。教程baeldung.com/java-read-lines-large-file
标签: java file input bufferedreader filereader