读取Java中的大文件
我需要非常了解Java和内存问题的人的建议。我有一个大文件(大约1.5GB),我需要将此文件切成许多小文件(例如100个小文件)。
我通常知道如何做到这一点(使用BufferedReader
),但是我想知道你是否对内存有任何建议,或者提示如何更快地做到这一点。
我的文件包含文本,它不是二进制文件,每行大约有20个字符。
回答:
首先,如果你的文件包含二进制数据,则使用BufferedReader
将是一个大错误(因为你会将数据转换为String,这是不必要的,并且很容易破坏数据);你应该BufferedInputStream
改用。如果它是文本数据,并且需要沿换行符进行拆分,则使用BufferedReader
OK(假定文件包含合理长度的行)。
关于内存,如果你使用大小合适的缓冲区,应该没有任何问题(我将至少使用1MB的内存来确保HD主要执行顺序读取和写入操作)。
如果发现速度有问题,你可以看看这些java.nio
包装-据说它们比java.io
,
以上是 读取Java中的大文件 的全部内容, 来源链接: utcz.com/qa/415733.html