读取Java中的大文件

我需要非常了解Java和内存问题的人的建议。我有一个大文件(大约1.5GB),我需要将此文件切成许多小文件(例如100个小文件)。

我通常知道如何做到这一点(使用BufferedReader),但是我想知道你是否对内存有任何建议,或者提示如何更快地做到这一点。

我的文件包含文本,它不是二进制文件,每行大约有20个字符。

回答:

首先,如果你的文件包含二进制数据,则使用BufferedReader将是一个大错误(因为你会将数据转换为String,这是不必要的,并且很容易破坏数据);你应该BufferedInputStream改用。如果它是文本数据,并且需要沿换行符进行拆分,则使用BufferedReader OK(假定文件包含合理长度的行)。

关于内存,如果你使用大小合适的缓冲区,应该没有任何问题(我将至少使用1MB的内存来确保HD主要执行顺序读取和写入操作)。

如果发现速度有问题,你可以看看这些java.nio包装-据说它们比java.io

以上是 读取Java中的大文件 的全部内容, 来源链接: utcz.com/qa/415733.html

回到顶部