我試過多次重寫這段代碼,它正確地吐出了字節,但是當試圖讀取從內存流創建的數組時,它是空的,我做錯了什麼?將字節數組寫入存儲器流只會產生寫入的零?
Dim bytes() As Byte = System.Text.Encoding.ASCII.GetBytes("test this shit")
Dim bytesString As String = ""
Dim i As Integer = 0
i = 0
Dim byteStream As New System.IO.MemoryStream
Do While i < bytes.Length
If bytes(i).ToString <> 0 Then
bytesString = bytesString & "|" & bytes(i).ToString
byteStream.WriteByte(bytes(i))
Debug.Print(bytes(i).ToString)
End If
i = i + 1
Loop
i = 0
byteStream.Flush()
Dim newBytes(byteStream.Length - 1) As Byte
byteStream.Read(newBytes, 0, byteStream.Length)
byteStream.Close()
Dim stringData As String = System.Text.Encoding.ASCII.GetString(newBytes)
Debug.Print("Data: " & stringData)
我想讀取tcp數據,我得到的是一個字節數組(顯然),但我只對字節3到26感興趣,這是我能想到的最好的方法來獲取這些字節成一個新的字節數組。 – fMinkel 2010-01-16 11:22:44
@fMinkel:你真的必須讓他們進入一個新的數組,你不能不使用前三個字節嗎?你有沒有考慮過使用Array.Copy將數據複製到新數組? – Guffa 2010-01-16 11:37:17
Guffa,我曾嘗試使用Copy和CopyTo,但我無法弄清楚如何使用源數組中的中間,(可能有數千個元素的數組中的3-26) – fMinkel 2010-01-16 11:41:37