【发布时间】:2020-11-14 05:55:01
【问题描述】:
我正在尝试从二进制文件中读取数据,我可以读取所有数据类型,但当它是字符串数组时,我收到错误“对象必须是原语数组”
这是我的代码中出现错误的地方
binReader.BaseStream.Seek(position, SeekOrigin.Begin);
buff = binReader.ReadBytes(369);
string[,,] MyArray = new string[1000, 4, 4];
Buffer.BlockCopy(buff, 0, MyArray , 0, buff.Length);
知道如何解决这个问题吗?
【问题讨论】:
-
对于原始(“blittable”)类型,字节缓冲区中有自然表示,而对于字符串则没有。所以问题是:你的字符串是如何在缓冲区中布置的?以前面的计数还是以 0 结尾?哪种编码(ASCII、UTF8、...)?
-
这就是问题所在,我怀疑这是我没有使用任何编码的原因,但是当我从二进制文件中读取时我无法克服它,任何机会如何在我进行编码时正在读取数据? @KlausGütter
-
您必须知道字符串是如何存储在文件中的。您是如何创建文件的?
-
@KlausGütter 不知道说实话