当前位置: 首页 > news >正文

C#的File 类使用说明

C#的File 类使用说明

  • 一:File 类简单说明
  • 二:File 类的枚举
  • 三:File 类的方法
    • 1: File.AppendAllText的方法介绍
    • 2: File.AppendText(String)的方法介绍
    • 3: File.Create的方法介绍
      • 3.1:Create(String) 使用举例:
      • 3.2:Create(String, Int32) 使用举例:
      • 3.3:Create(String, Int32, FileOptions) 使用举例:
    • 4: File.CreateText(String)的方法介绍
    • 5: File.Delete(String) 的方法介绍
    • 6: File.Exists(String) 的方法介绍
    • 7: File.Open 的方法介绍
    • 8: File.OpenRead(String) 的方法介绍
    • 9: File.OpenText(String) 的方法介绍
    • 10:File.OpenWrite(String) 的方法介绍
    • 11:File.ReadAllBytes(String) 的方法介绍
    • 12:File.ReadAllLines的方法介绍
    • 13:File.ReadAllText的方法介绍
    • 14:File.Replace的方法介绍
    • 15:File.WriteAllBytes(String, Byte[]) 的方法介绍
    • 16:File.WriteAllLines的方法介绍
    • 17:File.WriteAllText 的方法介绍
    • 18:File.Copy 的方法介绍

一:File 类简单说明

1)提供用于创建、复制、删除、移动和打开单一文件的静态方法,并协助创建 FileStream 对象。
2) 使用 File 类来获取和设置文件特性或 DateTime 与文件的创建、访问和写入相关的信息。 如果要对多个文件执行操作,请参阅 Directory.GetFiles 或 DirectoryInfo.GetFiles 。

二:File 类的枚举

枚举枚举说明
FileAccess指定对文件的读取和写入访问权限。
FileShare指定已在使用的文件所允许的访问级别。
FileMode指定是保留还是覆盖现有文件的内容,以及创建现有文件的请求是否会引发异常。

三:File 类的方法

1: File.AppendAllText的方法介绍

1)作用:将指定的字符串,追加到文件中,如果文件还不存在,则创建该文件。
2)语法:

public static void AppendAllText (string path, string contents);
public static void AppendAllText (string path, string contents, System.Text.Encoding encoding);
重载重载说明
AppendAllText(String, String)打开一个文件,向其中追加指定的字符串,然后关闭该文件。
如果文件不存在,此方法将创建一个文件,将指定的字符串写入文件,然后关闭该文件。
AppendAllText(String, String, Encoding)使用指定的编码将指定的字符串追加到文件中,如果文件还不存在则创建该文件。

3)使用举例:

string path = @"H:\Tempfile\MyTest.txt";
// 此文本仅一次添加到文件中.
if (!File.Exists(path))
{
    // 创建要写入的文件.
    string createText = "Hello and Welcome" + Environment.NewLine;
    File.WriteAllText(path, createText);
}

// 始终添加此文本,使文件随着时间的推移变得更长
string appendText = "This is extra text: There is no end to learning" + Environment.NewLine;
File.AppendAllText(path, appendText);

// 打开要从中读取的文件
string readText = File.ReadAllText(path);
Console.WriteLine(readText);

4)运行结果:

Hello and Welcome
This is extra text: There is no end to learning

2: File.AppendText(String)的方法介绍

1)作用:创建一个 StreamWriter,它将 UTF-8 编码文本追加到现有文件或新文件(如果指定文件不存在)
2)语法:

public static System.IO.StreamWriter AppendText (string path);

3)使用举例:

// 此文本仅一次添加到文件中
if (!File.Exists(path))
{
    //  创建要写入的文件.
    using (StreamWriter sw = File.CreateText(path))
    {
        sw.WriteLine("Freedom And justice");
        sw.WriteLine("GUNDAM 00");
        sw.WriteLine("Zero project");
    }
}

// 始终添加此文本,使文件随着时间的推移变得更长
using (StreamWriter sw = File.AppendText(path))
{
    sw.WriteLine("This is Extra");
    sw.WriteLine("Keep it simple.");
    sw.WriteLine("Beautiful Zhuhai");
}

// 打开要从中读取的文件。
using (StreamReader sr = File.OpenText(path))
{
    string s = "";
    while ((s = sr.ReadLine()) != null)
    {
        Console.WriteLine(s);
    }
}

4)运行结果:

Freedom And justice
GUNDAM 00
Zero project
This is Extra
Keep it simple.
Beautiful Zhuhai

3: File.Create的方法介绍

1)作用:在指定路径中,创建或覆盖文件。
2)语法:

public static System.IO.FileStream Create (string path);
public static System.IO.FileStream Create (string path, int bufferSize);
public static System.IO.FileStream Create (string path, int bufferSize, System.IO.FileOptions options);
public static System.IO.FileStream Create (string path, int bufferSize, System.IO.FileOptions options, System.Security.AccessControl.FileSecurity fileSecurity);
重载重载说明
Create(String)在指定路径中创建或覆盖文件。
Create(String, Int32)在指定路径中创建或覆盖文件,指定缓冲区大小。
Create(String, Int32, FileOptions)创建或覆盖指定路径中的文件,指定缓冲区大小和一个描述如何创建或覆盖该文件的选项。
Create(String, Int32, FileOptions, FileSecurity)创建或覆盖指定路径中的文件,指定缓冲区大小、描述如何创建或覆盖该文件的选项,以及用于确定文件的访问控制和审核安全的值
例外情况例外情况说明
UnauthorizedAccessException调用方没有所要求的权限(只读文件 / 隐藏文件)。
ArgumentNullExceptionpath 为 null。
PathTooLongException指定的路径和/或文件名超过了系统定义的最大长度。
DirectoryNotFoundException指定的路径无效(例如,它位于未映射的驱动器上)。
IOException创建文件时发生 I/O 错误。
NotSupportedExceptionpath 的格式无效。
FileOptionsFileOptions 说明
Asynchronous1073741824 指示文件可用于异步读取和写入。
DeleteOnClose67108864 指示当不再使用某个文件时,自动删除该文件。
Encrypted16384 指示文件是加密的,只能通过用于加密的同一用户帐户来解密。
None0 指示在生成 FileStream 对象时,不应使用其他选项。
RandomAccess268435456 指示随机访问文件。 系统可将此选项用作优化文件缓存的提示。
SequentialScan134217728 指示按从头到尾的顺序访问文件。 系统可将此选项用作优化文件缓存的提示。 如果应用程序移动用于随机访问的文件指针,可能不发生优化缓存,但仍然保证操作的正确性。 如果指定此标志,可提升某些案例中的性能。
WriteThrough-2147483648 指示系统应通过任何中间缓存、直接写入磁盘。

3.1:Create(String) 使用举例:

string path = @"H:\Tempfile\MyTest.txt";

try
{
    //  创建文件,如果文件存在,则覆盖该文件.
    using (FileStream fs = File.Create(path))
    {
        byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
        // 向文件中添加一些信息。
        fs.Write(info, 0, info.Length);
    }
    // 打开stream,然后再读一遍
    using (StreamReader sr = File.OpenText(path))
    {
        string s = "";
        while ((s = sr.ReadLine()) != null)
        {
            Console.WriteLine(s);
        }
    }
}

catch (Exception ex)
{
    Console.WriteLine(ex.ToString());
}

运行结果:

This is some text in the file.

3.2:Create(String, Int32) 使用举例:

//file类的学习与使用
string path = @"H:\bilibi_Temp\MyTest.txt";

// 创建文件,如果文件存在,则覆盖该文件.
using (FileStream fs = File.Create(path, 1024))
{
    byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
    // 向文件中添加一些信息.
    fs.Write(info, 0, info.Length);
}

// 打开Stream,然后读取一遍
using (StreamReader sr = File.OpenText(path))
{
    string s = "";
    while ((s = sr.ReadLine()) != null)
    {
        Console.WriteLine(s);
    }
}

运行结果:

This is some text in the file.

3.3:Create(String, Int32, FileOptions) 使用举例:

string path = @"H:\Tempfile\MyTest.txt";

try
{
    //  创建文件,如果文件存在,则覆盖该文件.
    using (FileStream fs = File.Create(path))
    {
        byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
        // 向文件中添加一些信息。
        fs.Write(info, 0, info.Length);
    }
    // 打开stream,然后再读一遍
    using (StreamReader sr = File.OpenText(path))
    {
        string s = "";
        while ((s = sr.ReadLine()) != null)
        {
            Console.WriteLine(s);
        }
    }
}

catch (Exception ex)
{
    Console.WriteLine(ex.ToString());
}

运行结果:

This is some text in the file.

4: File.CreateText(String)的方法介绍

1)作用:创建或打开用于写入 UTF-8 编码文本的文件。 如果该文件已存在,将覆盖其内容。
2)语法:

public static System.IO.StreamWriter CreateText (string path);

3)使用举例:

//file类的学习与使用
string path = @"H:\bilibi_Temp\MyTest.txt";

// 创建文件,写入信息.
using (StreamWriter sw = File.CreateText(path))
{
    sw.WriteLine("This is New file");
    sw.WriteLine("Keep it simple.");
    sw.WriteLine("Beautiful Zhuhai");
}

// 打开Stream,然后读取一遍
using (StreamReader sr = File.OpenText(path))
{
    string s = "";
    while ((s = sr.ReadLine()) != null)
    {
        Console.WriteLine(s);
    }
}

5: File.Delete(String) 的方法介绍

1)作用:删除指定的文件。
2)语法:

public static void Delete (string path);

3)使用举例:

//file类的学习与使用
string path = @"H:\bilibi_Temp\MyTest.txt";
File.Delete(path );//删除一个文件
Console.WriteLine("删除成功");

6: File.Exists(String) 的方法介绍

1)作用:确定指定的文件是否存在。
2)语法:

public static bool Exists (string path);

7: File.Open 的方法介绍

1)作用:打开指定路径上的 FileStream。
2)语法:

public static System.IO.FileStream Open (string path, System.IO.FileMode mode);
public static System.IO.FileStream Open (string path, System.IO.FileMode mode, System.IO.FileAccess access);
public static System.IO.FileStream Open (string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share);
重载重载说明
Open(String, FileMode)通过不共享的读/写访问权限打开指定路径上的 FileStream。
Open(String, FileMode, FileAccess)通过指定的模式和不共享的访问权限打开指定路径上的 FileStream。
Open(String, FileMode, FileAccess, FileShare)打开指定路径上的 FileStream,具有带读、写或读/写访问的指定模式和指定的共享选项。

8: File.OpenRead(String) 的方法介绍

1)作用:打开现有文件以进行读取。
2)语法:返回FileStream是指定路径上的只读 FileStream。

public static System.IO.FileStream OpenRead (string path);

9: File.OpenText(String) 的方法介绍

1)作用:打开现有 UTF-8 编码文本的文件,以进行读取。
2)语法:返回StreamReader是指定路径上的 StreamReader。

public static System.IO.StreamReader OpenText (string path);

10:File.OpenWrite(String) 的方法介绍

1)作用:打开一个现有文件或创建一个新文件以进行写入。
2)语法:返回FileStream是指定路径上具有 FileStream 访问权限的非共享的 Write 对象。

public static System.IO.FileStream OpenWrite (string path);

11:File.ReadAllBytes(String) 的方法介绍

1)作用:打开一个二进制文件,将文件的内容读入一个字节数组,然后关闭该文件。
2)语法:返回Byte[] 是包含文件内容的字节数组。

public static byte[] ReadAllBytes (string path);

12:File.ReadAllLines的方法介绍

1)作用:打开一个文本文件,将文件的所有行读入一个字符串数组,然后关闭该文件。
2)语法:返回string[]是包含文件内容的字符串数组。

public static string[] ReadAllLines (string path);
public static string[] ReadAllLines (string path, System.Text.Encoding encoding);
重载重载说明
ReadAllLines(String)打开一个文本文件,读取文件的所有行,然后关闭该文件。
ReadAllLines(String, Encoding)打开一个文件,使用指定的编码读取文件的所有行,然后关闭该文件。

13:File.ReadAllText的方法介绍

1)作用:打开一个文本文件,将文件中的所有文本读取到一个字符串中,然后关闭此文件。
2)语法:返回string 是包含文件内容的字符串。

public static string ReadAllText (string path, System.Text.Encoding encoding);
public static string ReadAllText (string path);
重载重载说明
ReadAllText(String, Encoding)打开一个文件,使用指定的编码读取文件中的所有文本,然后关闭此文件。
ReadAllText(String)打开一个文本文件,读取文件中的所有文本,然后关闭此文件。

14:File.Replace的方法介绍

1)作用:使用其他文件的内容替换指定文件的内容,这一过程将删除原始文件,并创建被替换文件的备份。
2)语法:

public static void Replace (string sourceFileName, string destinationFileName, string destinationBackupFileName);
public static void Replace (string sourceFileName, string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors);
重载重载说明
Replace(String, String, String)使用其他文件的内容替换指定文件的内容,这一过程将删除原始文件,并创建被替换文件的备份。
Replace(String, String, String, Boolean)用其他文件的内容替换指定文件的内容,这一过程将删除原始文件,并创建被替换文件的备份,还可以忽略合并错误。

15:File.WriteAllBytes(String, Byte[]) 的方法介绍

1)作用:创建一个新文件,在其中写入指定的字节数组,然后关闭该文件。 如果目标文件已存在,则覆盖该文件。
2)语法:

public static void WriteAllBytes (string path, byte[] bytes);

3)使用举例:

string Strr = "C#高级教程的学习";
string path = @"H:\bilibi_Temp\MyTest.txt";

//将字符串转成字节数组
byte[] buffer_A = Encoding.Default.GetBytes(Strr);

File.WriteAllBytes(path, buffer_A);
Console.WriteLine("写入成功");

16:File.WriteAllLines的方法介绍

1)作用:创建一个新文件,在其中写入一个或多个字符串,然后关闭该文件。
2)语法:

public static void WriteAllLines (string path, string[] contents, System.Text.Encoding encoding);
public static void WriteAllLines (string path, string[] contents);
重载重载说明
WriteAllLines(String, String[], Encoding)创建一个新文件,使用指定编码在其中写入指定的字符串数组,然后关闭该文件。
WriteAllLines(String, String[])创建一个新文件,在其中写入指定的字节数组,然后关闭该文件。

17:File.WriteAllText 的方法介绍

1)作用:创建一个新文件,向其中写入内容,然后关闭文件。 如果目标文件已存在,则覆盖该文件。
2)语法:

public static void WriteAllText (string path, string contents);
public static void WriteAllText (string path, string contents, System.Text.Encoding encoding);
重载重载说明
WriteAllText(String, String)创建一个新文件,向其中写入指定的字符串,然后关闭文件。 如果目标文件已存在,则覆盖该文件。
WriteAllText(String, String, Encoding)创建一个新文件,使用指定编码向其中写入指定的字符串,然后关闭文件。 如果目标文件已存在,则覆盖该文件。
string path = @"H:\bilibi_Temp\MyTest.txt";
if (!File.Exists(path))
{
    string createText = "Freedom and justice" + Environment.NewLine;
    File.WriteAllText(path, createText);
}

string appendText = "Freedom and justice" + Environment.NewLine;
File.AppendAllText(path, appendText);

//使用指定编码方式,打开要从中读取的文件.
string readText = File.ReadAllText(path,Encoding.Default);
Console.WriteLine(readText);

18:File.Copy 的方法介绍

1)作用:将现有文件复制到新文件。
2)语法:

public static void Copy (string sourceFileName, string destFileName);
public static void Copy (string sourceFileName, string destFileName, bool overwrite);
重载重载说明
Copy(String, String)将现有文件复制到新文件。 不允许覆盖同名的文件。
Copy(String, String, Boolean)将现有文件复制到新文件。 允许覆盖同名的文件。

3)使用举例:

string path_A = @"H:\bilibi_Temp\MyTest.txt";
string path_B = @"H:\cilici_Temp\MyTest.txt";
File.Copy (path_A ,path_B);//复制文件
Console.WriteLine("复制成功");

相关文章:

  • 零基础能学大数据技术吗?学完能找到工作吗?
  • 实时即未来,车联网项目之远程诊断实时故障分析【七】
  • 《SpringBoot篇》10.JPQL超详细介绍与JPA命名规则
  • 【Android-实战】1、Room 使用 Flow 和 collect() 监听数据库的变化、动态更新页面
  • python字符串应用
  • asp.net高校网上评教信息系统VS开发sqlserver数据库web结构c#编程计算机网页项目
  • 暂退法dropout----详解与分析(多层感知机)
  • Android Tablayout样式修改
  • 朋友圈那位隐藏大佬的单片机学习心得
  • Android系统启动流程全解析--你知道Android系统启动都干了啥吗
  • openGl绘制五星红旗
  • 【数据结构】二叉树
  • HTML常用标签二
  • 高数(下) 第十二章:无穷级数
  • 【GOF】三种工厂模式~
  • 【Leetcode】101. 对称二叉树
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • __proto__ 和 prototype的关系
  • Babel配置的不完全指南
  • CSS 提示工具(Tooltip)
  • ECMAScript入门(七)--Module语法
  • ES6系列(二)变量的解构赋值
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • IndexedDB
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • java取消线程实例
  • Java应用性能调优
  • JS字符串转数字方法总结
  • oldjun 检测网站的经验
  • PHP的Ev教程三(Periodic watcher)
  • Spring-boot 启动时碰到的错误
  • ucore操作系统实验笔记 - 重新理解中断
  • 爱情 北京女病人
  • 大型网站性能监测、分析与优化常见问题QA
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 二维平面内的碰撞检测【一】
  • 机器学习 vs. 深度学习
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 使用权重正则化较少模型过拟合
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 微信公众号开发小记——5.python微信红包
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #大学#套接字
  • #考研#计算机文化知识1(局域网及网络互联)
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (arch)linux 转换文件编码格式
  • (function(){})()的分步解析
  • (solr系列:一)使用tomcat部署solr服务
  • (超详细)语音信号处理之特征提取
  • (七)c52学习之旅-中断
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题