1

我正在编写一个基于 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,但我的代码将以任意大小运行,那么最佳实践是什么,或者可以根据文件大小计算这个大小?

提前谢谢,问候菲利普

4

1 回答 1

2

它应该始终是 2 的幂。最佳值基于操作系统和磁盘格式。在我见过的代码中,经常使用 4096,但越大越好。

此外,还有更好的方法将文件加载到内存中。

于 2013-09-25T14:33:35.390 回答