2014-03-02 133 views
1

使用下面的代碼:StreamReader讀取文件和StreamWriter寫入結果省略第一行?

string lines = ""; 
using (StreamReader sr = new StreamReader(@"file.txt")) 
{ 
    lines = sr.ReadLine(); 
} 
using (StreamWriter writer = new StreamWriter(@"file.txt")) 
{ 
    writer.Write(lines); // Change this to skip the first line 
} 

我怎樣才能使改寫一切,除了第一行?

+0

你的代碼是完全錯誤的。 'lines'的類型是'string' ...它不是一個數組。另外,你正在調用'ReadLine' ...,因爲它不是複數..讀取_a單行_... –

+0

我不明白你想要做什麼。你只是讀一行,如果你跳過它,那麼你什麼都沒有? –

回答

2

也許你可以試試這個:

var lines = File.ReadLines("file.txt").Skip(1).ToList(); 
File.WriteAllLines("file.txt",lines); 

它會寫的所有行到您的文件,除了第一行和替換文件content.So基本上就會從你的文件中刪除的第一行。

+0

我以前使用這種方法,但我不斷收到錯誤'在mscorlib.dll中發生類型'System.IO.IOException'的未處理的異常其他信息:進程無法訪問文件'file.txt',因爲它正在使用由另一個進程。「這就是爲什麼我切換到StreamReader/StreamWriter。 – Keavon

+0

@Keavon okey然後嘗試分開兩種方法 –

+1

這工作完美。謝謝! – Keavon

2
var allLinesExceptFirstOne = System.IO.File.ReadAllLines(filename).Skip(1).ToList();