ディスクの速度を計算するために大きなランダムファイルを書き込んで、次にそれを読み取ろうとしています。いくつかのアルゴリズムを試しましたが、1GBのファイルを書き込もうとすると、例外またはメモリ例外が発生します。ここで私はいくつか試してみましたされているディスクから大量のファイルをメモリ外に書き出す例外
方法1
byte[] data = new byte[8192];
Random rng = new Random();
using (FileStream stream = File.OpenWrite(filePath))
{
for (int i = 0; i < fileSizeMb * 128; i++)
{
rng.NextBytes(data);
stream.Write(data, 0, data.Length);
}
}
方法2
const int blockSize = 1024 * 8;
const int blocksPerMb = (1024 * 1024)/blockSize;
int count = fileSizeMb * blocksPerMb;
byte[] data = new byte[blockSize];
Random rng = new Random();
//using (FileStream stream = File.OpenWrite(filePath))
using (StreamWriter sw1 = new StreamWriter(filePath))
{
// There
for (int i = 0; i < count; i++)
{
rng.NextBytes(data);
sw1.BaseStream.Write(data, 0, data.Length);
//stream.Write(data, 0, data.Length);
}
}
読む
using (StreamReader sr = new StreamReader(filePath))
{
String line = sr.ReadToEnd();
}
**読み込み中に** OutOfMemoryExceptionが発生していませんか?そして、btw、 'StreamReader/Writer'はテキストデータを読み書きするためのものです。バイナリデータは' Stream'だけを使用します。 –
@Ivanファイルを読むにはどうすればいいですか – nlstack01