8

テキストファイルを1つのテキストファイルに結合するこの単純なコードがあります:

void Main()
{
const int chunkSize = 2 * 1024; // 2KB
var inputFiles = new[] { @"c:\1.txt", @"c:\2.txt", @"c:\3.txt" };
using (var output = File.Create(@"c:\output.dat"))
{
    foreach (var file in inputFiles)
    {
        using (var input = File.OpenRead(file))
        {
            var buffer = new byte[chunkSize];
            int bytesRead;
            while ((bytesRead = input.Read(buffer, 0, buffer.Length)) > 0)
            {
                output.Write(buffer, 0, bytesRead);
            }
        }
    }
}
}

私の質問はchunkSizeサイズについてです。

選択した番号が正しいかどうかを確認するにはどうすればよいですか? (1024*2)

アイドル式を見つけようとしています:

各ファイル サイズがF mbで、R mbRam があり、Hd のブロック サイズが であると仮定するとB kb、アイドル バッファ サイズを見つけるために作成できる式はありますか?

4

1 に答える 1

8

4KB が適切な選択です。詳細については、これを参照してください:
ストリームを使用したファイル I/O - 最適なメモリ バッファー サイズ

ご挨拶

于 2013-08-13T11:18:00.470 に答える