2016-06-28 107 views
-3

我有一個大的文本文件作爲輸入:刪除 n

Një 
tjetër 
qytetar 
ka 
rënë 
pre 
e 
dhunës 
nga 
ana 
e 
efektivëve 
të 
policisë 
Ditën 
e 
sotme 
një 
i 
ri 
.... 

我想顯示像(輸出)文本文件的內容:

Një tjetër qytetar ka rënë pre e dhunës nga ana e efektivëve të policisë Ditën e sotme një i ri ... 

這裏是我的源代碼:

static void Main(string[] args) 
     { 
      string fileName = "C:\\Users\\Eric\\person.txt"; 
      using (StreamReader sr = File.OpenText(fileName)) 
      { 
       string s = String.Empty; 
       while ((s = sr.ReadLine()) != null) 
       { 
        Console.WriteLine(s); 
        Console.WriteLine("\t"); 
       } 
      } 
     } 

但它不能正常工作。

+4

使用文本文件'Console.Write' –

+0

對於初學者來說,Console.WriteLine(s)每次總是會寫一個新行。所以你可能想要使用一個字符串變量,並在每個新行中添加一個空格。然後在完成讀取文件後寫出該字符串。 – jpaugh78

+1

@Rakitić這是我最喜歡的評論 – Paparazzi

回答

4

正如其名稱所示,Console.WriteLine會寫入一行讀取由Console.ReadLine移除的換行符。只需使用Console.Write

static void Main(string[] args) 
{ 
    string fileName = "C:\\Users\\Eric\\person.txt"; 
    using (StreamReader sr = File.OpenText(fileName)) 
    { 
     string s = String.Empty; 
     while ((s = sr.ReadLine()) != null) 
     { 
      Console.Write(s); 
      Console.Write("\t"); 
     } 
    } 
} 

您還可以將代碼縮減爲一個單獨符合

Console.Write(string.Join("\t", File.ReadLines("c:\\users\\eric\\person.txt"))); 
+1

絕對喜歡單線。我會從OP中注意到的一件事 - OP是在代碼行之間插入一個製表符,但「期望的輸出」僅僅是空格。在這種情況下,請注意在'Join'或'Console.Write'中使用''「',而不是'」\ t「'。 –

+0

它可能只是網站編輯器的複製/粘貼效果。 – Steve

0

您可以閱讀使用

string text = File.ReadAllText("C:\\Users\\Eric\\person.txt"); 
text = text.Replace("\n", " "); 
Console.Write(text);