Java缓冲区的大小

时间:2013-09-25 14:29:58

标签: java io buffer

我正在编写一个基于java的小工具来处理mysqldump文件,这些文件可能变得非常大(现在最多可达到1 GB)。我正在使用此代码来读取和处理文件:

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,但我的代码将以任意大小运行,那么最佳做法是什么,或者可以根据文件大小计算这个大小?

提前谢谢, 问候菲律宾

1 个答案:

答案 0 :(得分:2)

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

此外,还有better ways将文件加载到内存中。