[C#] 기존 파일을 열고 한 줄 추가

텍스트 파일을 열고 한 줄을 추가 한 다음 닫고 싶습니다.



답변

당신은 File.AppendAllText그것을 위해 사용할 수 있습니다 :

File.AppendAllText(@"c:\path\file.txt", "text content" + Environment.NewLine);


답변

using (StreamWriter w = File.AppendText("myFile.txt"))
{
  w.WriteLine("hello");
}


답변

하나 선택! 그러나 첫 번째는 매우 간단합니다. 파일 조작을위한 마지막 util :

//Method 1 (I like this)
File.AppendAllLines(
    "FileAppendAllLines.txt",
    new string[] { "line1", "line2", "line3" });

//Method 2
File.AppendAllText(
    "FileAppendAllText.txt",
    "line1" + Environment.NewLine +
    "line2" + Environment.NewLine +
    "line3" + Environment.NewLine);

//Method 3
using (StreamWriter stream = File.AppendText("FileAppendText.txt"))
{
    stream.WriteLine("line1");
    stream.WriteLine("line2");
    stream.WriteLine("line3");
}

//Method 4
using (StreamWriter stream = new StreamWriter("StreamWriter.txt", true))
{
    stream.WriteLine("line1");
    stream.WriteLine("line2");
    stream.WriteLine("line3");
}

//Method 5
using (StreamWriter stream = new FileInfo("FileInfo.txt").AppendText())
{
    stream.WriteLine("line1");
    stream.WriteLine("line2");
    stream.WriteLine("line3");
}


답변

아니면 사용할 수 있습니다 File.AppendAllLines(string, IEnumerable<string>)

File.AppendAllLines(@"C:\Path\file.txt", new[] { "my text content" });


답변

TextWriter 클래스 를 확인하고 싶을 수도 있습니다.

//Open File
TextWriter tw = new StreamWriter("file.txt");

//Write to file
tw.WriteLine("test info");

//Close File
tw.Close();


답변

File.AppendText가 수행합니다.

using (StreamWriter w = File.AppendText("textFile.txt"))
{
    w.WriteLine ("-------HURRAY----------");
    w.Flush();
}


답변

기술적으로 가장 좋은 방법은 다음과 같습니다.

private static async Task AppendLineToFileAsync([NotNull] string path, string line)
{
    if (string.IsNullOrWhiteSpace(path))
        throw new ArgumentOutOfRangeException(nameof(path), path, "Was null or whitepsace.");

    if (!File.Exists(path))
        throw new FileNotFoundException("File not found.", nameof(path));

    using (var file = File.Open(path, FileMode.Append, FileAccess.Write))
    using (var writer = new StreamWriter(file))
    {
        await writer.WriteLineAsync(line);
        await writer.FlushAsync();
    }
}