【发布时间】:2014-01-20 07:28:59
【问题描述】:
我需要我的代码来做这样的事情 - 在代码中的某处 num 获取一个值,然后我想从文件中读取,因为字节是数字 num。
例如:如果 num 为 39382,我需要读取 39382 个字节并将它们放入 byte[] 缓冲区;
在我有这样的事情之前:
ushort num = 0;
//.... num get some value;
byte[] buffer = bRead.ReadBytes(num);
现在我必须将其更改为 num 是 UInt32,但随后 ReadBytes 不起作用(因为它需要 int32)。 'num' 可能超过 int32。我是这样修复的:
byte[] buffer = new byte[num];
for (int j = 0; j < num; j++)
{
buffer[j] = bRead.ReadByte();
}
它有效,但我想知道这是最好的方法吗?还是有别的?
【问题讨论】:
-
警告:分配 >2GB 数组仅适用于
gcAllowVeryLargeObjects设置为 true 的 .NET 4.5 64 位。您可能希望使用FileStream或同等名称。 -
这就是我想用更好的改变它的原因之一。
标签: c# binaryreader uint32