두 개의 텍스트 파일, Source.txt 및 Target.txt가 있습니다. 원본은 수정되지 않으며 N 줄의 텍스트가 포함됩니다. 그래서, Target.txt 텍스트의 특정 줄을 삭제하고 Source.txt 텍스트의 특정 줄 바꾸고 싶습니다, 실제로 필요한 줄 수를 알고 실제로 두 줄 번호 2, 두 파일입니다.C에서 텍스트 파일의 특정 줄 편집
I 피난처이 같은 :
string line = string.Empty;
int line_number = 1;
int line_to_edit = 2;
using (StreamReader reader = new StreamReader(@"C:\source.xml"))
{
using (StreamWriter writer = new StreamWriter(@"C:\target.xml"))
{
while ((line = reader.ReadLine()) != null)
{
if (line_number == line_to_edit)
{
writer.WriteLine(line);
}
line_number++;
}
}
}
하지만 라이터를 열 때, 대상 파일이 삭제 얻을, 그것은 선을 기록하지만, 열 때, 대상 파일은 복사 한 줄이 포함는 나머지는 길을 잃는다.
어떻게해야합니까?
물론 브릴리언트 대답 !! ... 완전히 여기서 일하는. 도트 네트 2.0에서 실행 중입니다 ... Unity3d에서 ___ function lineChanger (newText : String, fileName : String, line_to_edit : int) { var arrLine : String [] = File.ReadAllLines (fileName); arrLine [line_to_edit-1] = newText; File.WriteAllLines (fileName, arrLine); } –
전체 파일을 다시 씁니다. –
또한 전체 파일을 한 번에 메모리에로드합니다. 하지만 아마도 가장 쉬운 접근 방법이며 작은 파일에서도 계속 사용할 수 있습니다. –