创建或打开文件,然后向其追加数据
Create or Open file and then Append data to it
我们可以使用这样的代码打开或创建文件,然后将一些数据写入其中(所有内容将被替换)。
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);
有什么方法可以将这 3 件事结合起来:((创建 || 打开)和追加)到文件中吗?
您可以创建自己的 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);
如果要将数据追加到文件中,只需调用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);
}
这是一个老问题,但它可能对某人有所帮助
您可以通过对类型进行 ORing 来打开
using (var file = File.Open(path, FileMode.OpenOrCreate | FileMode.Append))
来自 FileMode.Append
的文档:
Opens the file if it exists and seeks to the end of the file, or
creates a new file. This requires Append permission. FileMode.Append
can be used only in conjunction with FileAccess.Write. Trying to seek
to a position before the end of the file throws an IOException
exception, and any attempt to read fails and throws a
NotSupportedException exception.
所以 Append 完全符合您的要求。
我们可以使用这样的代码打开或创建文件,然后将一些数据写入其中(所有内容将被替换)。
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);
有什么方法可以将这 3 件事结合起来:((创建 || 打开)和追加)到文件中吗?
您可以创建自己的 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);
如果要将数据追加到文件中,只需调用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);
}
这是一个老问题,但它可能对某人有所帮助
您可以通过对类型进行 ORing 来打开
using (var file = File.Open(path, FileMode.OpenOrCreate | FileMode.Append))
来自 FileMode.Append
的文档:
Opens the file if it exists and seeks to the end of the file, or creates a new file. This requires Append permission. FileMode.Append can be used only in conjunction with FileAccess.Write. Trying to seek to a position before the end of the file throws an IOException exception, and any attempt to read fails and throws a NotSupportedException exception.
所以 Append 完全符合您的要求。