2013-12-17 65 views
-1

我有一個小的HttpWebRequest,抓住一些文本從網上.txt文件的StreamWriter寫在同一行

它得到它,我想將它保存到計算機上的.txt文件後一切。文字

內容是formatet這樣的:

Line one 
Line two 
Line four 
Line Five 
Line ten etc. 

但當它保存它最終是這樣的:

Line oneLine twoLine fourLine FiveLine ten etc. 

我如何可以解決這個問題?

代碼如下:使用ReadLine()和使用WriteLine()代替ReadToEnd()WriteToEnd()

HttpWebRequest WebReq3 = (HttpWebRequest)WebRequest.Create("http://test.net/test.txt"); 

HttpWebResponse WebResp3 = (HttpWebResponse)WebReq3.GetResponse(); 

System.IO.StreamReader sr3 = new System.IO.StreamReader(WebResp3.GetResponseStream()); 


System.IO.StreamWriter _WriteResult = new StreamWriter(Application.StartupPath + "\Test.txt"); 
_WriteResult.Write(sr3.ReadToEnd()); 
_WriteResult.Close(); 

sr3.Close(); 
+2

您是否正在使用同一編輯器閱讀兩個txt文件?有時候不同的編輯會以不同的方式解釋換行符 –

+0

@SystemDown,yes;換言之,這必須是一個編碼問題。 –

+0

你確定你收到的文字內容有換行嗎?通過直接從響應流**中讀取字節數據**,將其讀入一個足夠大的字節數組,並在該字節數組內搜索換行符(十進制10,13) – elgonzo

回答

1

讀取數據。

刪除此行:

_WriteResult.Write(sr3.ReadToEnd()); 

,並修改代碼如下:

string readval = sr3.ReadLine(); 
while(readval != null) 
{ 
    _WriteResult.WriteLine(readval); 
    readval = sr3.ReadLine(); 
} 

有關詳細信息,請參閱the documentation

+0

非常感謝你:) – Merceyz

+0

你好Downvoter,用戶已經接受這個答案。你能解釋爲什麼你降低了投票率嗎? –

+0

@ kumarch1雖然不是我,但我注意到你的答案格式不是很好。現在修復了。 (最明顯的問題是你發佈的代碼有些奇怪的原因) –