我正在使用此流写入日志文件:
using(FileStream fs = new FileStream(Path.Combine(Folder, LogFile),
FileMode.OpenOrCreate,
FileAccess.Write,
FileShare.ReadWrite))
{
using(System.IO.StreamWriter file = new System.IO.StreamWriter(fs))
{
while(!token.IsCancellationRequested)
{
file.WriteLine("bla bla bla");
}
}
}
此代码示例的目的是写入日志文件。我希望能够做的是在此代码运行时用Excel或记事本读取它。我可以用Excel在外部打开文件,但文件是空的,直到我停止程序。
此外,当我尝试用Excel打开它时,虽然我使用FileShare.ReadWrite
声明了流,但我说该文件已被锁定以进行编辑。
答案 0 :(得分:1)
在while循环中编写文件并希望在NotePad
中实时查看数据时,您需要立即Flush the data
在您的情况下进行简单的
file.Flush();
在file.Write
工作之后内部的while循环
using(FileStream fs = new FileStream(Path.Combine(Folder, LogFile),
FileMode.OpenOrCreate,
FileAccess.Write,
FileShare.ReadWrite))
{
using(System.IO.StreamWriter file = new System.IO.StreamWriter(fs))
{
while(!token.IsCancellationRequested)
{
file.WriteLine("bla bla bla");
file.Flush();
}
}
}