1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > java读取文件特别慢_如何提高在Java中读取大文件的速度?

java读取文件特别慢_如何提高在Java中读取大文件的速度?

时间:2023-12-22 03:40:58

相关推荐

java读取文件特别慢_如何提高在Java中读取大文件的速度?

我只读了一个大小为167MB且行号为1884000的文件.我使用的方法是BufferedReader,以获得读取它的效果.

我注意到,随着当前行号的增加,读取文件的过程越来越慢(在这种情况下,我花了3小时30分钟完成它).

我知道使用nio可能会加快这个过程,但我想要读取该文件.

我的代码如下;有人能给我一些建议吗?非常感谢!

String htmlContentPath = html.getAbsolutePath();

BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(htmlContentPath)));

String line = null;

int cnt = 0;

while((line = reader.readLine()) != null) {

this.proc(line);

if((cnt++ % 2000) == 0) {

logger.info("current line number:\t"+cnt);

}

}

最佳答案 你应该能够在这里找到答案:

要获得最佳的Java读取性能,需要记住以下四点:

>通过一次读取一个数组来最小化I / O操作,而不是一次读取一个字节.一个8K字节的阵列是一个很好的大小.

>通过一次获取数据数组来最小化方法调用,而不是一次获取一个字节.使用数组索引来获取数组中的字节数.

>如果您不需要线程安全,请最小化线程同步锁.对线程安全类进行较少的方法调用,或者使用非线程安全的类,如FileChannel和MappedByteBuffer.

>最大限度地减少JVM / OS,内部缓冲区和应用程序阵列之间的数据复制.将FileChannel与内存映射一起使用,或使用直接或包装的数组ByteBuffer.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。