C# File类中的文件读写方法

这篇具有很好参考价值的文章主要介绍了C# File类中的文件读写方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

C#提供了多种操作文件的方案,File类中封装的静态方法,接口封装得比较人性化,隐藏了具体实现的细节,主要包括读取、写入以及追加,这些函数如下

类别 字节读写 字符串列表 字符串
读取 ReadAllBytes ReadAllLines ReadAllText ReadLines
写入 WriteAllBytes WriteAllLines WriteAllText
追加 AppendAllLines AppendAllText AppendText

这些方法大部分都有其异步模式,以RaadAllBytes为例,其对应的异步方法为ReadAllBytesAsync,即在后面加一个Async

这些方法中,读取操作需要至少输入一个字符串,表示文件路径,其返回值为字节数、字符串或者字符串列表;追加和写入操作,至少需要输入一个文件路径以及将要写入的内容,根据函数类别不同,可以是字节数组、字符串或者字符串列表。

下面在顶级语句中,对这些函数做一些基础的演示。

字节读写

ReadAllBytesWriteAllBytes是用于读写字节数组的方法,

byte[] data = new byte[1024];
for (int i = 0; i < 1024; i++)
    data[i] = (byte)i;

File.WriteAllBytes("test.bin", data);

运行之后,将在运行目录创建一个test.bin文件,接下来通过ReadAllBytes对其读取。

data = File.ReadAllBytes("test.bin");
foreach (var d in data)
    Console.Write($"{d}, ");

其输出结果为0-255的数字,类似下面这样,这是在创建文件时,已经把i转换为了字节,1个字节只有8位,最大值就是255。

...251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5...

字符串读写和追加

通过xxxAllText可以直接读取文本文档,这些函数提供了两个重载,一种只需要输入文件名和写入内容,另一种需要指定编码方式。

File.WriteAllText("test.txt", "if u miss the train i'm on, ");
File.AppendAllText("test.txt", "u will know that i'm gone");
var s = File.ReadAllText("test.txt");
Console.WriteLine(s);

输出结果为

if u miss the train i'm on, u will know that i'm gone

如果指定编码方式,尽管对英文来说可能无所谓,但编码不匹配,可能导致出现乱码,示例如下

File.WriteAllText("test.txt", "桃李春风一杯酒");
File.AppendAllText("test.txt", "江湖夜雨十年灯", Encoding.Unicode);

var s = File.ReadAllText("test.txt");
Console.WriteLine(s);

效果为

桃李春风一杯酒_lVnY?ASt^op

字符串数组

xxxAllLines可以操作字符串数组,或以字符串为元素的其他可迭代对象。

string[] poem0 = new string[] { "我居北海君南海", "寄雁传书谢不能" };
string[] poem1 = new string[] { "桃李春风一杯酒", "江湖夜雨十年灯" };
File.WriteAllLines("lines.txt", poem0);
File.AppendAllLines("lines.txt", poem1);

var s = File.ReadAllLines("lines.txt");
foreach (var item in s)
    Console.WriteLine(item);

效果如下


我居北海君南海
寄雁传书谢不能
桃李春风一杯酒
江湖夜雨十年灯文章来源地址https://www.toymoban.com/news/detail-458304.html


到了这里,关于C# File类中的文件读写方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • String类中的一些常用方法(JAVA)

    目录 字符串比较方法: boolean equals(Object anObject):  int compareTo(String s): int compareToIgnoreCase(String str) 字符串查找方法: char charAt(int index): int indexOf(int ch):  int indexOf(int ch, int fromIndex): int indexOf(String str): int indexOf(String str, int fromIndex): int lastIndexOf(int ch): int lastIndexOf(in

    2024年02月07日
    浏览(42)
  • SpringBoot根据注解动态执行类中的方法

    有一个接口提供了xx的服务,有两个场景分别实现了xx的具体逻辑,标记为xx1和xx2。 然后场景一过来的时候执行xx1逻辑,场景二过来的时候执行xx2逻辑。 定义一个service层,提供xx的接口。 然后定义两个serviceImpl,@Service(name=\\\"\\\")标记不同的名称,分别提供xx的具体实现。 在使用

    2024年02月14日
    浏览(44)
  • 如何在 PHP 中动态调用类中的方法?

    在PHP中,我们可以通过动态调用类方法的方式来实现更加灵活的编程。这种方法可以使我们在运行时根据具体的需要来动态调用类中的方法。 1.使用call_user_func函数 PHP中提供了 call_user_func 函数用于动态调用类方法。 其中, $object 为类的实例化对象, $methodName 为要调用的方法

    2024年01月19日
    浏览(47)
  • C++回调函数 匿名函数,类中的方法做为回调函数

    C++中的回调函数和匿名函数都是函数指针或函数对象的使用形式。下面分别介绍它们的使用方法。 回调函数是一种函数指针,它允许将函数作为参数传递给另一个函数,并在需要时调用它。这种技术通常用于事件处理、异步处理和状态机等应用中。 下面是一个简单的示例,

    2024年02月01日
    浏览(47)
  • Spring事务失效,同一个类中的内部方法调用事务失效

    所谓声明式事务,也就是通过配置的方式,比如通过 配置文件xml或者注解 的方式,来告诉Spring哪些方法需要Spring帮忙管理事务,然后开发者只需要关注业务代码,而事务的事情则由Spring自动帮我们控制。 配置文件的方式 :即在spring.xml文件中进行统一配置,开发者基本不用

    2023年04月18日
    浏览(46)
  • 解锁新技能《spring如何将属性配置文件中的属性绑定到实体类中》

    在springboot中将配置文件中的属性绑定到指定的实体类上可以通过自动化配置的方式实现,也可以通过手动方式从Environment环境变量中取出再赋值给实体类;但是在有些场景下自动化配置这种方案是行不通的,例如:ApplicationListener、ApplicationContextInitializer进行初始化调用时属性

    2024年02月16日
    浏览(53)
  • C#文件读写操作 [详细]

    文件是存储在磁盘中的具有特定名称和目录路径的数据集合,当我们使用程序对文件进行读取或写入时,程序会将文件以数据流(简称流)的形式读入内存中。我们可以将流看作是通过通信路径传递的字节序列,流主要分为输入流和输出流,输入流主要用于从文件读取数据(

    2024年01月16日
    浏览(39)
  • C# 读写TXT文件

    首先引入命名空间 using System.IO; 读TXT文件: 写TXT文件:

    2024年02月08日
    浏览(38)
  • C#读写各类文件合集

    适用于小型文本全文的读取和写入。 首先创建C#窗体程序,然后写入以下代码: 首先安装依赖包 config.json内容如下: 代码块入下: 创建.ini文件,内容如下: (注意文件编码格式使用ANSI,否则读取会出现乱码) 然后写入以下代码块: 创建两个.xml文件,内容如下: 不带ID的

    2023年04月14日
    浏览(45)
  • TextBrewer:融合并改进了NLP和CV中的多种知识蒸馏技术、提供便捷快速的知识蒸馏框架、提升模型的推理速度,减少内存占用

    TextBrewer 是一个基于PyTorch的、为实现NLP中的 知识蒸馏 任务而设计的工具包, 融合并改进了NLP和CV中的多种知识蒸馏技术,提供便捷快速的知识蒸馏框架,用于以较低的性能损失压缩神经网络模型的大小,提升模型的推理速度,减少内存占用。 TextBrewer 为NLP中的知识蒸馏任务

    2024年02月13日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包