我尝试编写一个日志文件,其中包含大量数据。每当我想添加数据来创建所需的结构时,我都会使用AppendTextAsync,这非常慢。有什么办法可以改善吗?
await FileIO.AppendTextAsync(file, "All event log messages \r\n");
答案 0 :(得分:2)
AppendTextAsync
将打开文件,搜索到最后,写入文件,然后关闭文件。这需要为OS进行大量工作,尤其是编写一行文本时。
打开文件一次,附加所有必需的文本,然后将其关闭。
答案 1 :(得分:0)
就像其他人提到的AppendTextAsync
一样,每次都打开,写入和关闭文件,所以我将其更改为:
var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.ReadWrite);
using (var outputStream = stream.GetOutputStreamAt(0))
{
using (var dataWriter = new Windows.Storage.Streams.DataWriter(outputStream))
{
dataWriter.WriteString("All event log messages \r\n");
await dataWriter.StoreAsync();
await outputStream.FlushAsync();
}
}
stream.Dispose();