C#文件操作

news/2025/2/25 14:32:36

文件类File

常用方法介绍
Open()打开文件
Create()创建文件
Copy()复制文件
Delete()删除文件
Exists()判断文件是否存在
Move()移动文件
Replace()替换文件
AppendAllText()新建并添加文本
ReadAllText()打开并读取文本内容

1.读取文件

1.创建一个Filestream  对象 (引入System.IO命名空间)

参数1: 文件路径    参数2:枚举,表示对这个文件进行的操作   参数3:枚举,表示对这个文件里面的数据进行操作

FileStream file=new FileStream("F:\\素材收集\\举例子\\加油.text",FileMode.OpenOrCreate,FileAccess.Read);

2.创建字节数组,用于存放读到的数据

byte[] buffer = new byte[1024 * 1024 * 5];//每次读取5M的数据到内存中,然后保存到字节数组中

3.调取读取方法

参数1:存放数据的字节数组    参数2:开始往字节数组中存放的位置   参数3:每次读取的字节大小

返回值: 本次实际读取的有效字节数,比如:读取一个3.5m的文件,控件虽然是5m空间,实例总返回3.5m

int r=file.Read(buffer, 0, buffer.Length);

4.将字节数组中的每一个元素,按照指定的变革解码或指定格式

参数1:需要解码的数组    参数2:从数组中哪个字节开始解码   参数3:解码的长度

string str=Encoding.UTF8.GetString(buffer,0,r);
Console.WriteLine(str);

5.关闭数据流

 file.Close();

6.释放资源

file.Dispose();

7.代码总和

FileStream file=new FileStream("F:\\素材收集\\举例子\\加油.text",FileMode.OpenOrCreate,FileAccess.Read);
 byte[] buffer = new byte[1024 * 1024 * 5];
int r=file.Read(buffer, 0, buffer.Length);
 string str=Encoding.UTF8.GetString(buffer,0,r);
 Console.WriteLine(str);
 file.Close();
 file.Dispose();

效果展示

2.写入文件

 FileStream file1 = new FileStream("F:\\素材收集\\举例子\\Come-On.text", FileMode.OpenOrCreate, FileAccess.Write);
 string str1 = "10.1-5.1,一定加油";
 byte[] buffers = Encoding.UTF8.GetBytes(str1);
 file1.Write(buffers, 0, buffers.Length);
 Console.WriteLine(str1);

效果展示

 驱动器

DriveInfo类的常用字段成员有

DriveFormat(文件系统格式,如NTFS或FAT32)

DriveType(驱动器类型)、Name(驱动器名)

TotalSize(总空间)

TotalFreeSpace(获得驱动器可用空间)

常用的方法成员有GetDrives(获得可用驱动器列表)

      DriveInfo[] driveInfos = DriveInfo.GetDrives();
      foreach (DriveInfo driveInfo in driveInfos)
      {
          if(driveInfo.DriveType==DriveType.Fixed && driveInfo.DriveFormat=="NTFS")
          {
              Console.WriteLine($"在{driveInfo.Name}驱动器上还有{driveInfo.AvailableFreeSpace}字节剩余空间");
          }
      }
      Console.ReadLine();

 二进制流

1.创建二进制流写入

  FileStream file3 = new FileStream("text.txt", FileMode.Create, FileAccess.Write);
  //创建二进制流写入实例
  BinaryWriter bw = new BinaryWriter(file3,Encoding.UTF8);
  bw.Write(Encoding.UTF8.GetBytes("0"));
  bw.Write(0.11);
  bw.Write(true);
  bw.Write(Encoding.UTF8.GetBytes("加油"));
  Console.WriteLine(bw);
  Console.WriteLine(file3);
  bw.Flush();
  bw.Close();
  file3.Close();

2.创建二进制流读取

 FileStream file4 = new FileStream("text.txt", FileMode.Open, FileAccess.Read);
 BinaryReader br = new BinaryReader(file4, Encoding.UTF8);
 Console.WriteLine(br.ReadBoolean());
 Console.WriteLine(br.ReadInt32());
 Console.WriteLine(br.ReadString());

File类的常用方法

常用方法介绍
Open()打开文件
Create()创建文件
Copy()复制文件
Delete()删除文件
Exists()判断文件是否存在
Move()移动文件
Replace()替换文件
AppendAllText新建文件并添加文本
ReadAllText()打开并读取文本内容


http://www.niftyadmin.cn/n/5865612.html

相关文章

Linux版本控制器Git【Ubuntu系统】

文章目录 **前言**一、版本控制器二、Git 简史三、安装 Git四、 在 Gitee/Github 创建项目五、三板斧1、git add 命令2、git commit 命令3、git push 命令 六、其他1、git pull 命令2、git log 命令3、git reflog 命令4、git stash 命令 七、.ignore 文件1、为什么使用 .gitign…

Deepseek引爆AI热潮 防静电地板如何守护数据中心安全

近期,Deepseek的爆火将人工智能推向了新的高度,也引发了人们对AI背后基础设施的关注。作为AI运行的“大脑”,数据中心承载着海量数据的存储、处理和传输,其安全稳定运行至关重要。而在这背后,防静电地板扮演着不可或缺…

告别阻塞,迎接高效:掌握 AsyncIOScheduler 实现异步任务调度

前言 时间在编程中是宝贵的,直接关联到效率与灵活性,尤其在异步编程里,如何优雅地管理定时任务简直是一门“艺术”。如果你还在用 time.sleep() 来控制延时任务,恐怕你早已体会过它的“痛苦”:程序卡住、线程阻塞、性能急剧下滑。想象一下,你的程序如同一个永远无法按时…

HTML应用指南:利用GET请求获取全国泸溪河门店位置信息

随着新零售业态的快速发展,门店位置信息的获取变得越来越重要。作为新兴烘焙品牌之一,泸溪河自2013年在南京创立以来,一直坚持“健康美味,香飘世界”的企业使命,以匠人精神打造新中式糕点。为了更好地理解和利用这些数据,本篇文章将深入探讨GET请求的实际应用,并展示如何…

力扣3464. 正方形上的点之间的最大距离

力扣3464. 正方形上的点之间的最大距离 题目 题目解析及思路 题目要求在points集合中找出k个点,k个点之间的最小的曼哈顿距离的最大值 最大最小值的题一般直接想到二分 将正方形往右展开成一条线,此时曼哈顿距离为两点直线距离**(仅起点右边的点)** …

线性模型 - 支持向量机(参数学习)

支持向量机的主优化问题为凸优化问题,满足强对偶性,即主优化问题可以 通过最大化对偶函数来求解。对偶函数是一个凹函数,因此最大化对偶函数是一个凸优化问题,可以通过多种凸优化方法来进行求解,得到拉格朗日乘数的最优…

ubuntu20.04音频aplay调试

1、使用指定声卡,aplay 播放命令 aplay -D plughw:1,0 test2.wav2、 录音 arecord -Dhw:1,0 -d 10 -f cd -r 44100 -c 2 -t wav test.wav3、各个参数含义 -D 指定声卡编号 plughw:0,0 //0,0代表card0,device0,可以通过arecord -l获取 -f 录音格式 S16_LE…

Java 集合框架大师课:集合流式编程革命(三)

🚀 Java 集合框架大师课:集合流式编程革命(三) 🔥 系列成就:集合框架战力值突破 90%!建议边撸代码边循环《孤勇者》进入心流状态 🎧 第一章:流式编程总动员 1.1 现实中的…