📌  相关文章
📜  C#中的File.Open(String,FileMode)方法,带示例(1)

📅  最后修改于: 2023-12-03 14:40:31.798000             🧑  作者: Mango

C#中的File.Open(String, FileMode)方法

简介

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#中常常用于读取或写入数据到文件。在使用该方法时,需要根据实际需求选择适当的文件访问模式,合理操作文件数据。同时,在文件操作完成后,需要注意关闭文件流以释放资源。