파일에 줄을 추가하고 싶습니다. StreamWriter를 사용하고 있습니다.
StreamWriter file2 = new StreamWriter(@"c:\file.txt");
file2.WriteLine(someString);
file2.Close();
내 파일의 출력은 서로 아래에 여러 문자열이어야하지만이 코드를 실행할 때마다 덮어 쓰는 행이 하나뿐입니다.
StreamWriter가 기존 파일에 추가 할 수있는 방법이 있습니까?
답변
대신 이것을 사용하십시오 :
new StreamWriter("c:\\file.txt", true);
이 StreamWriter 생성자 오버로드로 파일을 추가하거나 덮어 쓸 것인지 선택합니다.
C # 4 이상은 다음 구문을 제공하며 일부 구문은 더 읽기 쉽습니다.
new StreamWriter("c:\\file.txt", append: true);
답변
using (FileStream fs = new FileStream(fileName,FileMode.Append, FileAccess.Write))
using (StreamWriter sw = new StreamWriter(fs))
{
sw.WriteLine(something);
}
답변
파일에 무언가를 쓸 때마다 위의 모든 코드를 실행한다고 가정 합니다. 파일의 스트림이 열릴 때마다 탐색 포인터가 시작 부분에 위치하므로 모든 쓰기가 이전의 내용을 덮어 씁니다.
두 가지 방법으로 문제를 해결할 수 있습니다.
file2 = new StreamWriter("c:/file.txt", true);
또는 스트림 포인터를 명시 적으로 재배치하여 :
file2 = new StreamWriter("c:/file.txt");
file2.BaseStream.Seek(0, SeekOrigin.End);
답변
이 시도:
StreamWriter file2 = new StreamWriter(@"c:\file.txt", true);
file2.WriteLine(someString);
file2.Close();
답변
이것을 교체하십시오 :
StreamWriter file2 = new StreamWriter("c:/file.txt");
이것으로 :
StreamWriter file2 = new StreamWriter("c:/file.txt", true);
true
텍스트를 추가 함을 나타냅니다.
답변
이 StreamWriter
생성자 를 두 번째 매개 변수-와 함께 사용하십시오 true
.
답변
다른 옵션은 System.IO.File.AppendText를 사용하는 것 입니다
이것은 다른 사람들이 제공 한 StreamWriter 오버로드와 동일합니다.
또한 File.AppendAllText 는 스트림을 열고 닫을 염려없이 약간 더 쉬운 인터페이스를 제공 할 수 있습니다. 그런 다음 자신의 줄 바꿈을 넣는 것에 대해 걱정해야 할 수도 있습니다. 🙂