流.ReadString在使用StreamReader时返回一个结果.ReadToEnd返回字符串.空和都是错的



我有一个填充流的代码。填充后,流的长度为1000(例如),而从流返回的字符串长度为。ReadString为997,从StreamReader.ReadToEnd()返回值为空流。

下面的代码显示了我的意思(显然,这不是我的工作代码,但问题是一样的):

MemoryStream stream = MethodCreatingPopulatedStream(stream);
StreamReader reader = new StreamReader(stream);
if (stream.Length != reader.ReadToEnd().Length)
{
    PostQuestionInStackOverFlow();
}
else if (!string.Equals(reader.ReadToEnd(), stream.ReadString()))
{
    PostQuestionInStackOverFlow();
    GetAnnoyedAtDotNet();
}
else
{
    Smile();
}

我在这里错过了什么?

p。S、添加流。

字符串(字符)的长度不一定与流(字节)的长度相同。它完全取决于编码和与存储字符串相关的任何其他开销(例如存储其长度)。

对于您的第二个测试,stream.ReadString()甚至不存在,如果它存在,则必须假设某种编码。

相关内容

  • 没有找到相关文章

最新更新