从FileStream中读取UTF8 Char

时间:2013-11-13 11:48:21

标签: vb.net filestream utf

我需要一种方法来读取FileStream每一个字符。 Char的Char。 每次读取char时,我都需要递增FileStream.Position

我正在尝试代码片段,但它会返回多个char:

Dim bytes(1) As Byte

Dim nBytes As Integer = oFile.Read(bytes, 0, bytes.Length)
Dim nChars As Integer = decoder8.GetCharCount(bytes, 0, nBytes)
Dim chars(nChars - 1) As Char
nChars = decoder8.GetChars(bytes, 0, nBytes, chars, 0)
Return New String(chars, 0, nChars)

2 个答案:

答案 0 :(得分:0)

您可以使用StreamReaderRead方法代替,不是吗?

Using rd = New StreamReader("path", Encoding.UTF8)
    While rd.Peek() >= 0
        Dim c As Char = Chr(rd.Read())
        Console.WriteLine("Next character: " & c)
    End While
End Using
  

StreamReader.Read

     

从输入流中读取下一个字符并前进   字符位置由一个字符组成。

答案 1 :(得分:0)

假设oFile的类型为FileStream,那么

Dim nBytes As Integer = oFile.ReadByte()

应该有用。