2014-03-19 5 views
-3

특정 단어가 들어있는 텍스트 파일에서 행을 제거하려고했습니다. 그러나 나는 라인을 지우는 더 좋은 방법이 필요하다. 여기 파일에서 행을 제거하십시오.

은 내가 사용하는 코드입니다 : 완성 된이 내 작업을 사용하여

var oldLines = System.IO.File.ReadAllLines(filepath); 
      var newLines = oldLines.Where(line1 => !line1.Contains("Value")); 
      System.IO.File.WriteAllLines(filepath, newLines); 

하지만, 다음과 같은 성능 문제 : 파일이 10 lakhs 라인이 포함되어있는 경우는 10lakhs 라인을 읽고 10 개 lakhs 라인을 작성해야합니다 , 그래서 더 많은 시간이 걸립니다.

+0

Google에 "lakh"이 있어야합니다. 이 용어에 대해 들어 본 적이없는 아시아 지역의 사람들은 100.000입니다. –

답변

1
string line = null; 
string line_to_delete = "sample line i want to delete"; 

using (StreamReader reader = new StreamReader("C:\\input")) { 
    using (StreamWriter writer = new StreamWriter("C:\\output")) { 
     while ((line = reader.ReadLine()) != null) { 
      if (String.Compare(line, line_to_delete) == 0) 
       continue; 
      writer.WriteLine(line); 
     } 
    } 
} 
+0

당신은 실제로 아무것도 쓰지 않는 것을 잊었을 수도 있습니다 – decPL

+0

- OP는 주어진 문자열이 포함되어 있으면 전체 라인을 삭제한다고 말합니다. 또한 OP의 게시물은 동일한 파일을 덮어 쓸 것으로 예상됩니다. –

관련 문제