我正在使用theBinaryReader将二进制文件的元素放入Int16列表中。但是从二进制文件读回的元素计数值不正确。读者是这样的:
using (var file = File.OpenRead(openFileName))
using (var reader = new BinaryReader(file))
{
int count = reader.ReadInt16();
this.view.Data = new List<Int16>(count);
for (int i = 0; i < count; i++)
this.view.Data.Add(reader.ReadInt16());
}我知道当我保存我的二进制文件时,view.Data列表包含19000个元素,但是在上面显示的read方法中,我查看了Count值,它告诉我count只有134% :(
下面是写入者:
using (var file = File.Create(fileName))
using (view.Writer = new BinaryWriter(file))
{
foreach (Int16 dataItem in view.Data)
{
view.Writer.Write(dataItem);
}
}写入后的总文件大小为40KB,在调试模式下,view.Data在存储时包含19000,而在读取时仅包含134KB。
有谁能帮帮忙
发布于 2011-03-20 02:18:31
你没有写出计数,它应该是这样的,以匹配你的阅读代码:
using (var file = File.Create(fileName))
using (view.Writer = new BinaryWriter(file))
{
Int16 count = (Int16) view.Data.Count;
view.Writer.Write(count);
foreach (Int16 dataItem in view.Data)
{
view.Writer.Write(dataItem);
}
}可能第一个值view.Data[0]的值是134,这就是为什么你现在只读了那么多。
https://stackoverflow.com/questions/5363769
复制相似问题