好问题
Good  Question
  • 首 页
  • 问题
    • PHP
    • JAVA
    • CPlusPlus
    • C#
    • SQL
  • 关 于
  • 联 系
怎样使用JAVA一行行读取大的文本文件? 关闭 返回上一级  

怎样使用JAVA一行行读取大的文本文件?
+ 查看更多

发布日期:2018-03-10 11:24
分类:JAVA
浏览次数:201
如下:
我需要使用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 stream = Files.lines(Paths.get(fileName))) {
        stream.forEach(System.out::println);
}
你必须将流放在try-with-resource块中,以确保文件关闭,如果你不这样做,垃圾回收器可能在你处理完文件前清理或关闭文件(也可能不是)。
上一篇Java中入参里的3个点代表什么意思?
Java中的静态类下一篇
下一篇Java中的静态类

最新文章

  • 函数`__construct`用来干嘛的
    发布日期:2018-03-26
  • 通过访客的IP得到他们的地区
    发布日期:2018-03-26
  • 合并两个PHP对象的最好的方法是什么?
    发布日期:2018-03-26
  • 该如何把一该如何把一个对象转化成数组?
    发布日期:2018-03-26
  • 什么是输出缓冲区?
    发布日期:2018-03-26
  • 在PHP中怎么把用逗号分隔的字符串分隔在一个数组里?
    发布日期:2018-03-26
  • 在PHP中使用foreach循环时查找数组的最后一个元素
    发布日期:2018-03-26
关于好问
收集整理一些有用的问题和回答,造福中国的程序旺和IT喵们!
友情链接
起飞页 
相关信息
版权声明
Copyright © 2016 - 2022  苏州卡达网络科技有限公司 备案号:苏ICP备09008221号