我想创建一个类来管理某个文件的打开。我将其中一个属性作为文件的字节数组,但我不知道该文件有多大。我试图宣布的字节数组为:C# - 创建未知大小的字节数组?
public byte[] file;
...但它不会允许我设置它的方式,我已经尝试过。 br为我BinaryReader在:
file = br.ReadBytes(br.BaseStream.Length);
br.Read(file,0,br.BaseStream.Length);
无论是工作方式。我认为这是因为我没有初始化我的字节数组,但如果我不知道它的大小,我不想给它一个大小。有任何想法吗?
编辑:好的,我认为这是因为二进制阅读器的BaseStream长度很长,但它的读者采用int32计数。如果我将64位转换为32位,是否有可能在较大的文件中丢失字节?
要回答你的第二个问题,文件必须是大于二千兆字节在这成为问题之前。 – 2011-12-24 06:55:55
@RobertHarvey - 尽管这是运行时限制的限制,但由于机器上的内存压力,可能会导致文件明显变小。 – codekaizen 2011-12-24 07:00:57
@Walkerneo - 请注意,此方法的签名允许您创建一个较小的数组,例如4096个字节,然后在循环中调用它,而“Read”方法的结果与您所用的字节数相同。已经要求。 – codekaizen 2011-12-24 07:02:42