Ошибка записи текста в текстовый файл построчно путем добавления в C#, но ничего не получил в файле
Я работаю над C# на Win7 VS 2012.
Мне нужно написать текст в текстовый файл построчно, добавив.
StreamWriter ofile = new StreamWriter(@"C:\myPath\my_data_output.txt", true);
ofile.WriteLine(myString + "\t");
Но в выходном файле ничего нет.
Любая помощь будет оценена.
4 ответа
Включите ваш код в пункт об использовании. Это вызовет метод Dispose для StreamWriter
учебный класс. Dispose
метод вызывает Flush
метод, который пишет в поток.
Ваш код будет выглядеть так:
using (StreamWriter ofile =
new StreamWriter(@"C:\myPath\my_data_output.txt", true)
{
ofile.WriteLine(myString + "\t");
}
Вы всегда можете вызвать метод сброса в любое время.
Я предлагаю использовать статический класс System.IO.File, который заботится о очистке и удалении, вам просто нужно вызвать метод AppendAllText следующим образом:
System.IO.File.AppendAllText(@"C:\myPath\my_data_output.txt", myString + "\t");
И если вам нужно вызывать его много раз, я предлагаю использовать StringBuilder:
StringBuilder sb = new StringBuilder();
while(condition)
{
//Your loop body
sb.AppendText(myString + "\t");
}
File.AppendAllText(@"C:\myPath\my_data_output.txt",sb.ToString());
Или лучше ofile.Close(); который закрывает поток, а также сбрасывает его, когда вы закончили с ним ссылка MSDN
У вас есть несколько вариантов:
StringBuilder sb = new StringBuilder();
while(SOME CONDITION)
{
sb.AppendLine("YOUR STRING");
}
// Set boolean to true to append to the existing file.
using (StreamWriter outfile = new StreamWriter(mydocpath + @"\AllTxtFiles.txt", true))
{
outfile.WriteLine(sb.ToString());
}
//Append new text to an existing file.
// The using statement automatically closes the stream and calls
// IDisposable.Dispose on the stream object.
using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\Users\Public\TestFolder\WriteLines.txt", true))
{
file.WriteLine("Your line");
}
Кроме того, убедитесь, что у вас есть разрешение на запись в каталог / файл, в который вы пытаетесь записать, и что вы запускаете приложение как администратор.