StreamReader.ReadToEnd()无法检索整个流

时间:2012-03-30 20:52:57

标签: streamreader memorystream

我正在获取代表附件的内存流。附件是一个HTML文档,如下所示。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">    
<HTML>    
...    
</HTML>    
<p><img border="0" src="http://www.somewebsite.com/mcv18/mapp_v50/images/mcrptgenlogo.jpg"></p>

我使用的代码是:

Using strm As New MemoryStream()
   anAttachment.Save(strm)
   strm.Position = 0
   Using sr As New StreamReader(strm)
     Dim attachmentAsString As String = sr.ReadToEnd()
   End Using
End Using

anAttachment.Save(strm)是我使用第三方库附件类实例获取附件内容的地方。无论如何,我在attachmentAsString中得到的结果只是一个“&lt;”。

如果我使用此代码:

anAttachment.Save("C:\Temp\Attachement.tmp"
attachmentAsString = File.ReadAllText("C:\Temp\Attachement.tmp")

我得到完全相同的结果。 “&LT;”

当我检查磁盘上的文件时,我可以看到整个Html文档。 在第一个块代码中,如果我在ReadToEnd调用之后检查strm.Position,它一直到流的末尾。 我可以单独读取字节,它似乎每次都会提升位置,但它会返回一些我不太喜欢的整数。

有人可以告诉我可以采取哪些措施让它发挥作用吗?

0 个答案:

没有答案