【发布时间】:2011-10-23 04:24:20
【问题描述】:
我正在制作一个读取二进制文件的程序。因此,我将各个字节读入无符号字符(实际上将数据读取为字符并将它们转换为每个字符的无符号字符)。现在我必须将无符号字符写回二进制文件。
问题是现在我不得不在将它们转换为字符后写入单个字节(因为二进制文件的 write() 需要 char* 缓冲区)。所以,现在我必须做以下事情:
for(int x=0; x<data_size; x++)
{
ch=(char)data[x];
outfile.write(&ch,1);
}
有什么办法可以绕过这个问题,从而减少读写时的 I/O 操作量?
【问题讨论】:
-
不要一次写入一个字节,而是更大的块(比如 64kiB)。就此而言,阅读也是如此。