我正在编写一个基于 java 的小工具来处理 mysqldump 文件,该文件可能会变得相当大(目前可达千兆字节)。我正在使用此代码来读取和处理文件:
BufferedReader reader = getReader();
BufferedWriter writer = getWriter();
char[] charBuffer = new char[CHAR_BUFFER_SIZE];
int readCharCout;
StringBuffer buffer = new StringBuffer();
while( ( readCharCout = reader.read( charBuffer ) ) > 0 )
{
buffer.append( charBuffer, 0, readCharCout );
//processing goes here
}
charBuffer
的合适大小是多少?目前它设置为 1000,但我的代码将以任意大小运行,那么最佳实践是什么,或者可以根据文件大小计算此大小吗?
先谢谢了, 问候菲利普
最佳答案
它应该始终是 2 的幂。最佳值基于操作系统和磁盘格式。在我见过的代码中,经常使用 4096,但越大越好。
此外,还有better ways将文件加载到内存中。
关于Java——适合字符缓冲区的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19007739/