Откройте существующий файл, добавьте одну строку

#c# #windows #file-attributes

#c# #файл

Вопрос:

Я хочу открыть текстовый файл, добавить к нему одну строку, затем закрыть его.

Ответ №1:

Для этого вы можете использовать File.AppendAllText :

 File.AppendAllText(@"c:pathfile.txt", "text content"   Environment.NewLine);
  

Ответ №2:

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

Комментарии:

1. Это правильный способ записи в файл, если вы генерируете много строк, чтобы избежать проблем с памятью.

Ответ №3:

Выбор один! Но первое очень простое. Возможно, последняя утилита для работы с файлами:

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

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

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

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

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

Ответ №4:

Или вы могли бы использовать File.AppendAllLines(strin&, IEnumerable<strin&&&t;)

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

Ответ №5:

Возможно, вам захочется проверить класс TextWriter.

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

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

//Close File
tw.Close();
  

Комментарии:

1. Он заменяет текущее содержимое новым текстом

Ответ №6:

Технически лучший способ, вероятно, заключается в следующем:

 private static async Task AppendLineToFileAsync([NotNull] strin& path, strin& line)
{
    if (strin&.IsNullOrWhiteSpace(path)) 
        throw new Ar&umentOutOfRan&eException(nameof(path), path, "Was null or whitepsace.");

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

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

Комментарии:

1. Единственный вариант не выдавать ошибку при быстром вызове

Ответ №7:

Файл.AppendText сделает это:

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

Ответ №8:

 //display sample re& form in notepad.txt
usin& (StreamWriter stream = new FileInfo("D:\tt.txt").AppendText())//ur file location//.AppendText())
{
   stream.WriteLine("Name :"   textBox1.Text);//display textbox data in notepad
   stream.WriteLine("DOB : "   dateTimePicker1.Text);//display datepicker data in notepad
   stream.WriteLine("DEP:"   comboBox1.SelectedItem.ToStrin&());
   stream.WriteLine("EXM :"   listBox1.SelectedItem.ToStrin&());
}
  

Ответ №9:

Мы можем использовать

 public StreamWriter(strin& path, bool append);
  

при открытии файла

 strin& path="C:\MyFolder\Notes.txt"
StreamWriter writer = new StreamWriter(path, true);
  

Первый параметр — это строка, содержащая полный путь к файлу
Вторым параметром является режим добавления, который в данном случае имеет значение true

Запись в файл может быть выполнена с помощью:

writer.Write(strin&)

или

writer.WriteLine(strin&)

Пример кода

 private void WriteAndAppend()
{
            strin& Path = Application.StartupPath   "\notes.txt";
            FileInfo fi = new FileInfo(Path);
            StreamWriter SW;
            StreamReader SR;
            if (fi.Exists)
            {
                SR = new StreamReader(Path);
                strin& Line = "";
                while (!SR.EndOfStream) // Till the last line
                {
                    Line = SR.ReadLine();
                }
                SR.Close();
                int x = 0;
                if (Line.Trim().Len&th <= 0)
                {
                    x = 0;
                }
                else
                {
                    x = Convert.ToInt32(Line.Substrin&(0, Line.IndexOf('.')));
                }
                x  ;
                SW = new StreamWriter(Path, true);
                SW.WriteLine("-----" strin&.Format("{0:dd-MMM-yyyy hh:mm:ss tt}", DateTime.Now));
                SW.WriteLine(x.ToStrin&()   "."   textBox1.Text);

            }
            else
            {
                SW = new StreamWriter(Path);
                SW.WriteLine("-----"   strin&.Format("{0:dd-MMM-yyyy hh:mm:ss tt}", DateTime.Now));
                SW.WriteLine("1."   textBox1.Text);
            }
            SW.Flush();
            SW.Close();
        }