Java——适合字符缓冲区的大小

标签 java io buffer

我正在编写一个基于 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/

相关文章:

java - 使用 JDBC 的 NullPointerError

linux - 异步和同步 I/O 操作系统是否独立?

c++ - 通过扫描关键字读取文本文件

c - recv 返回旧数据

python - TCP 套接字文件传输

java - 如果输出大小很大,JSch 终端输出读取会失败

Java Swing 工具栏

java - Java 中动态类和包加载的最佳方法

c++ - 将 float 写入和读取二进制文件时的不同值

c - 帮助 inotify C 脚本