如果有一个包含大量记录的输入文件,每条记录为一行,每条记录由一个id号、记录创建时间和记录内容组成。那么读取和解析文件的最佳方法是什么?
例如输入为:
123-456-789 1:23pm Jan 4, 2014 I AM THE CONTENT! 987-654-321 3:21pm Apr1, 2014 I AM THE CONTENT TOO! …
To read one line each time, I believe there is no much difference between scanner and bufferedReader because scanner also has 1k buffer. So may I do:
Scanner scan = new Scanner(new File("filename"))?
然后,在我得到一行后,我应该创建另一个扫描仪对象来解析该行并获取每个字段(我可以将该行作为扫描仪的输入)吗?或者还有其他更好的解决方案吗?
对于经验丰富的程序员来说,在现实世界中读取和解析这样一个包含大量记录的文件的最佳方法(快速、更好的性能)应该是什么?谢谢!
最佳答案
除非“吨”意味着数亿行,否则它不太可能对您使用的任何显着差异产生任何显着差异,但您只需要一个 Scanner 对象来完成此任务,而不是每行一个。
NB BufferedReader 有一个 4k 缓冲区,因此您认为“没有太大区别”的唯一理由是不可能的。事实上,Scanner 是一个具有标记功能的高级 API,您似乎也没有意识到这一点。
关于java - 现实世界从 Java 文件中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22277051/