簡體   English   中英

無法創建MemoryStream

[英]Can't create MemoryStream

是否有任何原因為什么此代碼不應產生其中包含單詞Slappy的內存流?

    private MemoryStream StringBuilderToMemoryStream(StringBuilder source)
    {
        MemoryStream memoryStream = new MemoryStream();
        StreamWriter streamWriter = new StreamWriter(memoryStream);
        streamWriter.Write("slappy");
        return memoryStream;
    }

即使我說streamWriter.Write(source.toString()); 它失敗。

有趣的是,它只能在調用此例程的一種方法上起作用,而不能在其他任何方法上起作用。

我打電話給他們的順序也沒有區別。

但是無論如何,即使我調用上面的方法,從有效的方法中,輸出仍然是空的MemoryStream。

有什么想法嗎?

您無需刷新流寫入器,因此該字永遠不會寫入內存流。

在對streamWriter.Write的調用之后添加以下streamWriter.Write

streamWriter.Flush();

此外,如果您想稍后從內存流中讀取該單詞,請確保重置其位置,因為在Write之后,它位於slappy單詞slappy

memoryStream.Position = 0;

如果您不想調用streamWriter.Flush(); 您可以在創建時設置StreamWriter的AutoFlush-Property。

MemoryStream memoryStream = new MemoryStream();
StreamWriter streamWriter = new StreamWriter(memoryStream)
   {
      AutoFlush = true
   }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM