私は次のコードを得ました:
byte[] myBytes = new byte[10 * 10000];
for (long i = 0; i < 10000; i++)
{
byte[] a1 = BitConverter.GetBytes(i);
byte[] a2 = BitConverter.GetBytes(true);
byte[] a3 = BitConverter.GetBytes(false);
byte[] rv = new byte[10];
System.Buffer.BlockCopy(a1, 0, rv, 0, a1.Length);
System.Buffer.BlockCopy(a2, 0, rv, a1.Length, a2.Length);
System.Buffer.BlockCopy(a3, 0, rv, a1.Length + a2.Length, a3.Length);
}
すべてが正常に機能します。すべてが書き込まれるようにこのコードを変換しようとしていましmyBytes
たが、長い値を使用していて、その値が高くなるとint.MaxValue
キャストが失敗することに気付きました。どうすればこれを解決できますか?
別の質問は、メモリ内に非常に大きなバイト配列を作成したくないので、.WriteBytes(path, myBytes);
関数に直接送信するにはどうすればよいですか?