我有一個奇怪的問題。我從tcp客戶端獲取文本流並將其寫入文件。該流不充分,因此填充的同時將其轉換爲串中的字節數組的未填充部分被轉換爲\ 0所以最後結束有,流編寫器沒有將修剪文本寫入C中的文件#
str = "blah foo bar \0\0\0\0\0...";
因此,我所做是
str = str.trim('\0');
但是,如果我這樣做,那麼字符串不會寫入使用流寫入器的文件。如果我評論修剪線,那麼它會與所有的空白字符一起寫入。這裏是我完整的代碼
StreamWriter sw = new StreamWriter("c:\\a\\ta.txt");
while (true)
{
try
{
NetworkStream ns = tc.GetStream();
byte[] instream = new byte[tc.ReceiveBufferSize];
Thread.Sleep(2500);
ns.Read(instream, 0, tc.ReceiveBufferSize);
string decodedData = string.Empty;
decodedData = System.Text.Encoding.ASCII.GetString(instream);
decodedData = decodedData.Trim('\0');
//string a = "dfdsfdsfdsfdsf";
//string b = a.Trim('\0');
try
{
sw.Write(decodedData);
//MessageBox.Show(decodedData);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
一些人能解釋我這是爲什麼,我該如何解決htis出來。
哦在調試我可以看到decodedData有修剪後的文本整潔乾淨,但我不知道爲什麼它沒有被寫入文件。
永遠循環嗎? – 2011-06-16 07:03:26
是的,這個應用程序連接的設備不斷髮送連續的數據流 – swordfish 2011-06-16 08:57:23