Ответ 1
Используйте
System.IO.File.WriteAllText(@"path\te.txt", "text");
Мой код в С# (asp.net MVC)
StreamWriter tw = new StreamWriter("C:\\mycode\\myapp\\logs\\log.txt");
// write a line of text to the file
tw.Write("test");
Файл создается, но пуст. Никакое исключение не выбрасывается. Я никогда не видел этого раньше, и я застрял здесь; Мне просто нужно написать какой-то отладочный вывод.
Просьба сообщить.
Используйте
System.IO.File.WriteAllText(@"path\te.txt", "text");
StreamWriter буферизуется по умолчанию, то есть он не будет выводиться до тех пор, пока он не получит вызов Flush() или Close().
Вы можете изменить это, установив свойство AutoFlush, если хотите. В противном случае просто выполните:
StreamWriter tw = new StreamWriter("C:\\mycode\\myapp\\logs\\log.txt");
// write a line of text to the file
tw.Write("test");
tw.Close(); //or tw.Flush();
Ни краснеет, ни закрыт, ни расположен. попробуйте это
using (StreamWriter tw = new StreamWriter(@"C:\mycode\myapp\logs\log.txt"))
{
// write a line of text to the file
tw.Write("test");
tw.Flush();
}
или мои предпочтения
using (FileStream fs = new FileStream( @"C:\mycode\myapp\logs\log.txt"
, FileMode.OpenOrCreate
, FileAccess.ReadWrite) )
{
StreamWriter tw = new StreamWriter(fs);
tw.Write("test");
tw.Flush();
}
FileStream fs = new FileStream("d:\\demo.txt", FileMode.CreateNew, FileAccess.Write);
StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.ASCII);
int data;
sw.Write("HelloWorld");
sw.Close();
fs.Close();
Ya в VB.net это не было необходимо, но, похоже, CSharp вам нужен вызов Writer.Flush, чтобы заставить писать. Конечно, Writer.Close() также заставил бы флеш.
Мы также можем установить свойство AutoFlush экземпляра StreamWriter:
sw.AutoFlush = true;
// Gets or sets a value indicating whether the StreamWriter
// will flush its buffer to the underlying stream after every
// call to StreamWriter.Write.
От: http://msdn.microsoft.com/en-us/library/system.io.streamwriter.autoflush(v=vs.110).aspx
Вам нужно либо закрыть, либо сбросить StreamWriter после завершения записи.
tw.Close();
или
tw.Flush();
Но лучше всего заключить выходной код в оператор using, поскольку StreamWriter реализует IDisposable:
using (StreamWriter tw = new StreamWriter("C:\\mycode\\myapp\\logs\\log.txt")){
// write a line of text to the file
tw.Write("test");
}
альтернативный
FileStream mystream = new FileStream("C:\\mycode\\myapp\\logs\\log.txt",
FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter tw = new StreamWriter(mystream);
tw.WriteLine("test");
tw.close();
Попробуйте закрыть файл или добавить \n
в строку, например
tw.WriteLine("test");
tw.Close();