创建或打开文件,然后向其追加数据
本文关键字:追加 数据 然后 文件 创建 | 更新日期: 2023-09-27 18:17:04
我们可以使用这样的代码打开或创建文件,然后在其中写入一些数据(所有内容将被替换)。
using (var file = File.Open(path, FileMode.OpenOrCreate))
using (var stream = new StreamWriter(file))
stream.WriteLine(_message);
或者我们可以使用下面的代码在文件的末尾添加数据,假设该文件存在。
using (var file = File.Open(path, FileMode.Append))
using (var stream = new StreamWriter(file))
stream.WriteLine(_message);
有没有办法把这三件事结合起来:((Create || Open) &追加)到文件?
如果要向文件追加数据,只需调用File.Seek(0, SeekOrigin.End)
。这将文件指针设置为文件的末尾,即使用FileMode.Append
打开文件后的位置。
using (var file = File.Open(path, FileMode.OpenOrCreate))
{
file.Seek(0, SeekOrigin.End);
using (var stream = new StreamWriter(file))
stream.WriteLine(_message);
}
您可以创建自己的FileStream
工厂,或者您可以像这样在一行中完成。
using (var file = File.Exists(path) ? File.Open(path, FileMode.Append) : File.Open(path, FileMode.CreateNew))
using (var stream = new StreamWriter(file))
stream.WriteLine(_message);
From Documentation of FileMode.Append
:
源learn.microsoft.com如果文件存在,则打开该文件,并查找到文件的末尾,或创建一个新文件。这需要追加权限。FileMode。附加只能与FileAccess.Write结合使用。试图寻找在文件结束之前的位置抛出IOException异常,任何读取尝试都失败,并抛出NotSupportedException例外。由于
所以Append就是你想要的
这是一个老问题,但它可能对某人有所帮助
可以通过ORing打开
类型using (var file = File.Open(path, FileMode.OpenOrCreate | FileMode.Append))