我得到以下代码:
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
但后来我意识到,我使用了 long,如果它的值更高,那么int.MaxValue
转换将失败。怎么能解决这个问题?
另一个问题是,因为我不想在内存中创建一个非常大的字节数组,我怎么能将它直接发送到我的.WriteBytes(path, myBytes);
函数?