3 回答

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個贊
此示例說明如何向MemoryStream讀取和寫入字符串。
Imports System.IO
Module Module1
Sub Main()
' We don't need to dispose any of the MemoryStream
' because it is a managed object. However, just for
' good practice, we'll close the MemoryStream.
Using ms As New MemoryStream
Dim sw As New StreamWriter(ms)
sw.WriteLine("Hello World")
' The string is currently stored in the
' StreamWriters buffer. Flushing the stream will
' force the string into the MemoryStream.
sw.Flush()
' If we dispose the StreamWriter now, it will close
' the BaseStream (which is our MemoryStream) which
' will prevent us from reading from our MemoryStream
'sw.Dispose()
' The StreamReader will read from the current
' position of the MemoryStream which is currently
' set at the end of the string we just wrote to it.
' We need to set the position to 0 in order to read
' from the beginning.
ms.Position = 0
Dim sr As New StreamReader(ms)
Dim myStr = sr.ReadToEnd()
Console.WriteLine(myStr)
' We can dispose our StreamWriter and StreamReader
' now, though this isn't necessary (they don't hold
' any resources open on their own).
sw.Dispose()
sr.Dispose()
End Using
Console.WriteLine("Press any key to continue.")
Console.ReadKey()
End Sub
End Module

TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個贊
您也可以使用
Encoding.ASCII.GetString(ms.ToArray());
我認(rèn)為這樣做效率不高,但我不能對此宣誓。它還允許您選擇其他編碼,而使用StreamReader則必須將其指定為參數(shù)。

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個贊
使用StreamReader將MemoryStream轉(zhuǎn)換為字符串。
<Extension()> _
Public Function ReadAll(ByVal memStream As MemoryStream) As String
' Reset the stream otherwise you will just get an empty string.
' Remember the position so we can restore it later.
Dim pos = memStream.Position
memStream.Position = 0
Dim reader As New StreamReader(memStream)
Dim str = reader.ReadToEnd()
' Reset the position so that subsequent writes are correct.
memStream.Position = pos
Return str
End Function
- 3 回答
- 0 關(guān)注
- 561 瀏覽
添加回答
舉報