错误:流的意外结束.数据可能已损坏 [英] Error: Unexpected end of stream. Data might be corrupted
本文介绍了错误:流的意外结束.数据可能已损坏的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用流数据.我遇到了错误.我有一些类似下面的代码.两者都是其中一项,但另一项并非如此.
I'm trying something with stream data. I'm getting an error. I have some codes like below. One of both works, but another is not.
此代码正常工作.
private static void Main_2()
{
{
var i = 1000000;
var bf = new BinaryFormatter();
var ms = new MemoryStream();
bf.Serialize(ms, i);
ms.Position = 0;
Stream mem = File.Create("test.lz4");
LZ4EncoderStream target = LZ4Stream.Encode(mem);
ms.CopyTo(target);
target.Dispose();
ms.Dispose();
mem.Dispose();
}
{
Stream source = File.OpenRead("test.lz4");
LZ4DecoderStream target = LZ4Stream.Decode(source);
var mem = new MemoryStream();
target.CopyTo(mem);
var bf = new BinaryFormatter();
mem.Position = 0;
var i = (int)bf.Deserialize(mem);
mem.Dispose();
target.Dispose();
source.Dispose();
}
}
此代码无效.
private static void Main()
{
var m = new MemoryStream();
{
var i = 1000000;
var bf = new BinaryFormatter();
var ms = new MemoryStream();
bf.Serialize(ms, i);
ms.Position = 0;
Stream mem = new MemoryStream();
LZ4EncoderStream target = LZ4Stream.Encode(mem);
ms.CopyTo(target);
m = new MemoryStream(((MemoryStream)mem).ToArray());
target.Dispose();
ms.Dispose();
mem.Dispose();
}
{
Stream source = m;
LZ4DecoderStream target = LZ4Stream.Decode(source);
var mem = new MemoryStream();
target.CopyTo(mem);
var bf = new BinaryFormatter();
mem.Position = 0;
var i = (int)bf.Deserialize(mem);
mem.Dispose();
target.Dispose();
source.Dispose();
}
}
这些代码之间有什么区别?我什么都找不到.为什么使用FileStream,为什么不使用MemoryStream?你能解释一下吗?
What is difference between these codes ? I couldn't find anything. Why is working with FileStream, Why is not working with MemoryStream? Can you explain this please ?
推荐答案
确保所有内容都已刷新.向下移动提取点:
Make sure everything is flushed. Move the extraction point down:
//m = new MemoryStream(((MemoryStream)mem).ToArray());
target.Dispose();
ms.Dispose();
mem.Dispose();
m = new MemoryStream(((MemoryStream)mem).ToArray());
这篇关于错误:流的意外结束.数据可能已损坏的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文