fzwyg 发表于 2006-9-7 17:41

StreamReade.peek读取到一般退的问题

<P>大家帮忙看看:<BR>        Dim objClient As New System.Net.Sockets.TcpClient<BR>        objClient.Connect("10.10.0.216", 8888)</P>
<P>        Dim objStream As System.Net.Sockets.NetworkStream<BR>        objStream = objClient.GetStream()</P>
<P>        Dim objWriter As System.IO.StreamWriter = New System.IO.StreamWriter(objStream, System.Text.Encoding.Default)<BR>        objWriter.Write(TextBox1.Text)<BR>        objWriter.Flush()</P>
<P>        Dim objReader As System.IO.StreamReader<BR>        objReader = New System.IO.StreamReader(objStream, System.Text.Encoding.Default)</P>
<P>        Dim strRev As String</P>
<P>        Dim i As Integer = 1</P>
<P>        While objReader.Peek() &gt; -1<BR>            ListBox2.Items.Add(objReader.Peek() &amp; "/" &amp; i)<BR>            strRev = objReader.ReadLine().ToString<BR>           ListBox2.Items.Add(strRev)<BR>            If Trim(strRev) = "&lt;/TX_INFO&gt;" Then Exit While<BR>            i += 1<BR>        End While<BR>        ListBox2.Items.Add(objReader.Read())<BR>         ListBox2.Items.Add("&lt;/TX&gt;")<BR>        Me.Refresh()<BR>        Me.ListBox2.SetSelected(ListBox2.Items.Count - 1, True)</P>
<P>        objReader.Close()<BR>        objStream.Close()<BR>        objClient.Close()</P>
<P>其中的        While objReader.Peek() &gt; -1<BR>            ListBox2.Items.Add(objReader.Peek() &amp; "/" &amp; i)<BR>            strRev = objReader.ReadLine().ToString<BR>           ListBox2.Items.Add(strRev)<BR>            If Trim(strRev) = "&lt;/TX_INFO&gt;" Then Exit While<BR>            i += 1<BR>        End While<BR>在数据流读取到一半时会退出(objReader.Peek() =-1),而用While objReader.Read() &gt; -1则可以全部读出来,但Read会移动位置,读出来的每行数据流前面会少了2个字节。这是为什么啊?在线等,谢谢了! </P>


页: [1]

编程论坛