📅  最后修改于: 2023-12-03 14:40:31.798000             🧑  作者: Mango
C#中的File.Open
方法是用于打开或者创建一个指定路径的文件的方法,同时可以指定文件的访问模式。该方法返回一个FileStream
的实例,可以用于操作文件的读、写、追加等操作。
方法签名为:public static FileStream Open(string path, FileMode mode)
其中,path
参数指定要打开的文件路径,mode
参数指定打开文件时的模式。mode
参数有以下几种枚举值:
FileMode.CreateNew
:创建新文件。如果文件已经存在,则抛出异常。FileMode.Create
:创建新文件。如果文件已经存在,则覆盖原文件。FileMode.Open
:打开已存在的文件。如果文件不存在,则抛出异常。FileMode.OpenOrCreate
:打开已存在的文件,如果文件不存在,则创建一个新文件。FileMode.Truncate
:打开已存在的文件,并截断(清空)文件。FileMode.Append
:打开已存在的文件,并将新内容追加到文件末尾。using System;
using System.IO;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
string path = @"C:\test\test.txt";
// 使用CreateNew模式打开文件,如果文件已存在会抛出异常
try
{
using FileStream fs = File.Open(path, FileMode.CreateNew);
Console.WriteLine($"文件打开成功,文件名为{fs.Name}");
}
catch (IOException ex)
{
Console.WriteLine(ex.Message);
}
// 使用OpenOrCreate模式打开文件,如果文件不存在则创建,否则打开文件
using (FileStream fs = File.Open(path, FileMode.OpenOrCreate))
{
Console.WriteLine($"文件打开成功,文件名为{fs.Name}");
}
// 使用Append模式打开文件,在文件末尾追加内容
using (FileStream fs = File.Open(path, FileMode.Append))
{
string content = "测试文件内容";
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(content);
fs.Write(buffer, 0, buffer.Length);
Console.WriteLine($"内容已写入文件 {fs.Name}");
}
// 使用Open模式打开文件,读取文件内容
using (FileStream fs = File.Open(path, FileMode.Open))
{
byte[] buffer = new byte[1024];
int len = fs.Read(buffer, 0, buffer.Length);
string content = System.Text.Encoding.UTF8.GetString(buffer, 0, len);
Console.WriteLine($"文件 {fs.Name} 的内容为:{content}");
}
}
}
}
输出结果:
文件打开成功,文件名为C:\test\test.txt
文件打开成功,文件名为C:\test\test.txt
内容已写入文件 C:\test\test.txt
文件 C:\test\test.txt 的内容为:测试文件内容
以上示例演示了如何使用不同的文件访问模式打开文件,并写入或读取文件内容。
File.Open
方法是一个常用的文件打开方法,在C#中常常用于读取或写入数据到文件。在使用该方法时,需要根据实际需求选择适当的文件访问模式,合理操作文件数据。同时,在文件操作完成后,需要注意关闭文件流以释放资源。