gpt4 book ai didi

c# - append 到文本文件(不覆盖!)

转载 作者:行者123 更新时间:2023-11-30 19:15:43 26 4
gpt4 key购买 nike

我提出的另一个 Universal Platform App 问题,仍在学习中!

快速提问 - 我需要使用哪种方法将数据写入文本文件以将字符串追加(而不是覆盖)到文本文件?目前我正在使用 async void using streams 但它正在覆盖我的文件。以下是创建和写入文本文件的不同方式:https://msdn.microsoft.com/en-us/library/windows/apps/mt185401.aspx

目前这是我的代码。是否需要修改以将数据 append 到文本文件而不是覆盖它,或者我是否需要使用其他方法之一来 append 数据?

//WRITE
//Create the text file to hold the data
Windows.Storage.StorageFolder storageFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
Windows.Storage.StorageFile ticketsFile = await storageFolder.CreateFileAsync("tickets.txt", Windows.Storage.CreationCollisionOption.OpenIfExists);

//Use stream to write to the file
var stream = await ticketsFile.OpenAsync(Windows.Storage.FileAccessMode.ReadWrite);

using (var outputStream = stream.GetOutputStreamAt(0))
{
using (var dataWriter = new Windows.Storage.Streams.DataWriter(outputStream))
{
dataWriter.WriteString("Submitted: " + submitDate + "\n" + "Problem: " + problem + "\n" + "Room: " + location + "\n" + "Description: " + descriptionText.Text + "\n" + "Priority: " + priority + "\n");
await dataWriter.StoreAsync();
await outputStream.FlushAsync();
}
}
stream.Dispose(); // Or use the stream variable (see previous code snippet) with a using statement as well.

如果有任何不同,我阅读的代码:

//READ
//Open the text file
stream = await ticketsFile.OpenAsync(Windows.Storage.FileAccessMode.ReadWrite);
ulong size = stream.Size;

using (var inputStream = stream.GetInputStreamAt(0))
{
using (var dataReader = new Windows.Storage.Streams.DataReader(inputStream))
{
uint numBytesLoaded = await dataReader.LoadAsync((uint)size);
string savedTickets = dataReader.ReadString(numBytesLoaded);

textBox.Text = savedTickets;
}
}

谢谢。

最佳答案

我面前没有我现在可以测试的平台,但这应该可以获取现有文件的长度并将编写器放在最后(新文件应返回 0):

使用(var outputStream = stream.GetOutputStreamAt(stream.Size))

关于c# - append 到文本文件(不覆盖!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34539016/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com