首先,如果你的文件包含二进制数据,则使用BufferedReader
将是一个大错误(因为你会将数据转换为String,这是不必要的,并且很容易破坏数据);你应该BufferedInputStream
改用。如果它是文本数据,并且需要沿换行符进行拆分,则使用BufferedReader
OK(假定文件包含合理长度的行)。
关于内存,如果你使用大小合适的缓冲区,应该没有任何问题(我将至少使用1MB的内存来确保HD主要执行顺序读取和写入操作)。
如果发现速度有问题,你可以看看这些java.nio
包装-据说它们比java.io
,