Wenn man mir eine MemoryStream
von dem ich weiß, dass es mit einer String
wie bekomme ich eine String
wieder raus?
Antworten
Zu viele Anzeigen?Dieses Beispiel zeigt, wie man eine Zeichenkette in einen MemoryStream liest und schreibt.
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
Coderer
Punkte
23226
Brian
Punkte
36229
Verwendung eines StreamReaders zur Umwandlung des MemoryStream in einen String.
<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
Darren Kopp
Punkte
74401
Verwenden eine StreamReader dann können Sie die ReadToEnd Methode, die eine Zeichenkette zurückgibt.
Sadjad Khazaie
Punkte
1946
- See previous answers
- Weitere Antworten anzeigen
1 Stimmen
Ich bin mir nie ganz sicher, ob reader.close immer erforderlich ist. Ich habe in der Vergangenheit Probleme gehabt, so dass ich in der Regel immer tun, nur um auf der sicheren Seite zu sein.