Создать a.txt файл если не существует, и если он добавляет новую строку
Я хотел бы создать .txt файл и запись в него, и если файл уже существует, я просто хочу добавить еще несколько строк:
string path = @"E:AppServExample.txt";
if (!File.Exists(path))
{
File.Create(path);
TextWriter tw = new StreamWriter(path);
tw.WriteLine("The very first line!");
tw.Close();
}
else if (File.Exists(path))
{
TextWriter tw = new StreamWriter(path);
tw.WriteLine("The next line!");
tw.Close();
}
но первая строка, кажется, всегда перезаписывается... как я могу не писать на той же строке (я использую это в цикле)?
Я знаю, что это довольно простая вещь, но я никогда не использовал WriteLine способ раньше. Я совершенно новичок в C#.
12 ответов:
использовать правильный конструктор:
else if (File.Exists(path)) { using(var tw = new StreamWriter(path, true)) { tw.WriteLine("The next line!"); } }
string path = @"E:\AppServ\Example.txt"; File.AppendAllLines(path, new [] { "The very first line!" });см. Также файл.AppendAllText(). AppendAllLines будет добавить новую строку для каждой строки без того, чтобы положить его туда сами.
оба метода создадут файл, если он не существует, поэтому вам не нужно.
- .AppendAllText
- .AppendAllLines
string path=@"E:\AppServ\Example.txt"; if(!File.Exists(path)) { File.Create(path).Dispose(); using( TextWriter tw = new StreamWriter(path)) { tw.WriteLine("The very first line!"); } } else if (File.Exists(path)) { using(TextWriter tw = new StreamWriter(path)) { tw.WriteLine("The next line!"); } }
на самом деле вам не нужно проверять, существует ли файл, так как StreamWriter сделает это за вас. Если вы откроете его в режиме добавления, файл будет создан, если он не существует, то вы всегда будете добавлять и никогда не переписывать. Таким образом, ваша первоначальная проверка является избыточной.
TextWriter tw = new StreamWriter(path, true); tw.WriteLine("The next line!"); tw.Close();
else if (File.Exists(path)) { using (StreamWriter w = File.AppendText(path)) { w.WriteLine("The next line!"); w.Close(); } }
при запуске StreamWriter это переопределить текст был там раньше. Вы можете использовать свойство append следующим образом:
TextWriter t = new StreamWriter(path, true);
из документации microsoft вы можете создать файл, если он не существует, и добавить его в один вызов Файл.Метод AppendAllText (String, String)
.NET Framework (текущая версия) другие версии
открывает файл, добавляет указанную строку в файл, а затем закрывает файл. Если файл не существует, этот метод создает файл, записывает указанную строку в файл, а затем закрывает файл. Пространство Имен: System.IO Сборка: mscorlib (in mscorlib.dll)
синтаксис C#C++F#VB public static void AppendAllText( строковый путь, содержимое строки ) Параметры путь система типов.Строка Файл для добавления указанной строки. содержание система типов.Строка Строка для добавления в файл.
.AppendAllText добавляет строку в файл. Он также создает текстовый файл, если файл не существует. Если вам не нужно читать контент, это очень эффективно. Вариант использования-ведение журнала.
File.AppendAllText("C:\log.txt", "hello world\n");
попробуйте это.
string path = @"E:\AppServ\Example.txt"; if (!File.Exists(path)) { using (var txtFile = File.AppendText(path)) { txtFile.WriteLine("The very first line!"); } } else if (File.Exists(path)) { using (var txtFile = File.AppendText(path)) { txtFile.WriteLine("The next line!"); } }
Comments