发布日期:2018-03-26
怎样使用JAVA一行行读取大的文本文件?+ 查看更多
怎样使用JAVA一行行读取大的文本文件?
+ 查看更多
发布日期:2018-03-10 11:24
分类:JAVA
浏览次数:215
如下:
我需要使用JAVA一行行读取大约5-6GB的文本文件。怎么做更快一些?
我需要使用JAVA一行行读取大约5-6GB的文本文件。怎么做更快一些?
回答:
一种普通的方式是:try (BufferedReader br = new BufferedReader(new FileReader(file))) { String line; while ((line = br.readLine()) != null) { // process the line. } }
如果文件里没有以特殊编码格式的字符(例如ASCII-7),读取速度可以更快一些,和上面的方式没有什么不同。很可能是你对数据的处理需要更长的时间。
try(BufferedReader br = new BufferedReader(new FileReader(file))) { for(String line; (line = br.readLine()) != null; ) { // process the line. } // line is not visible here. }更新:在JAVA8你可以这样做:
try (Stream你必须将流放在try-with-resource块中,以确保文件关闭,如果你不这样做,垃圾回收器可能在你处理完文件前清理或关闭文件(也可能不是)。stream = Files.lines(Paths.get(fileName))) { stream.forEach(System.out::println); }