news 2026/1/13 15:23:41

C#文件读取

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C#文件读取

File

介绍

using System.IO;IO输入和输出

File:文件的一些读写操作的类,主要包括功能,文件读写、对文件的复制、剪切、删除、创建等操作

方法

Create()创建一个文件流,指定文件位置, //文件位置可以是绝对路径,C:\Users\1\Desktop\1.txt就是绝对路径 FileStream fileStream = File.Create(@"C:\Users\1\Desktop\1.txt");
//可以是相对路径1.txt默认清空下在bin--》debug文件下 FileStream fileStream2 = File.Create(@"1.txt"); //../1.txt相对于默认路径(debug)文件夹的上一层路径 FileStream fileStream2 = File.Create(@"../1.txt"); // ./也是默认路径 FileStream fileStream2 = File.Create(@"./2.txt"); fs.Close();//如果不加,会出现2.txt 正在使用中
//Copy把文件从参数1路径复制到参数2路径上 File.Copy(@"./2.txt",@"../2.txt"); //Exists()判断路径下是否有文件 File.Exists(@"../2.txt"); //Move把文件从参数1路径剪切到参数2路径上 File.Move(@"./txt", @"../3.txt"); //Delete删除指定路径下文件 File.Delete(@"../3.txt"); //WriteAllText()以字符串的方法进行写入路径 //参数1路径 参数2写入内容 File.WriteAllText("1.txt", "aaaaa"); File.ReadAllText("1.txt"); //WriteAllBytes()以字节的方式进行写入 参数1路径 参数2字节数组(—替换—) // Encoding.UTF8.GetStrings() 把字符串转成字符串 //Encoding.UTF8.GetBytes() 把字符串转成字节数组 byte[]b=Encoding.UTF8.GetBytes("123"); File.WriteAllBytes("1.txt",b) byte[]b2=File.ReadAllBytes(@"1.txt");//读取路径文本,转成字节数组 Console.WriteLine(Encoding.UTF8.GetString(b2)); //WriteAllLines()以换行的形式进行写入 string[] cs = new string[] {"木瓜星灵","你该死","!!!!!!" }; File.WriteAllLines(@"1.txt",cs); //以换行的形式进行读取 string[] ss= File.ReadAllLines(@"1.txt"); foreach (var item in ss) { Console.WriteLine(item); } File.AppendAllText(@"1.txt", "what the hell?");

FileStream文件流

写法

//FileStream文件流 //参数1 指定文件流路径 //参数2 指定打开文件模式:FileMode.Open打开现有的文件,如果没有此文件,抛出异常 //FileMode.Create 如果存在1.txt会覆盖原先文件,如果没有创建一个新文件 //FileMode.OpenOrCreate 如果存在则打开,如果不存在则新建一个 //参数3:FileAccess文件权限:ReadWrite 具备文件读写权限、Read:只读权限,Write:写入权限 FileStream fileStream = new FileStream(@"1.txt",FileMode.OpenOrCreate,FileAccess.ReadWrite);

方法

string s = "你好坤泽,小菜鸡"; byte[]bs= Encoding .UTF8.GetBytes(s);//把字符串转成字节数组 //参数1写入字节数组,参数2是写入开始位置, fileStream .Write(bs, 0, bs.Length); fileStream.Flush();//清空缓存区,确保文件流写入文件中 fileStream.Close();//关闭文件流 fileStream = new FileStream(@"1.txt", FileMode.Open, FileAccess.ReadWrite);//严格来说,读取的时候文件打开方式选成Open byte[] bytes = new byte[fileStream.Length];//字节数组不能写太大,也不能写太小 fileStream.Read(bytes, 0, bytes.Length);//把fileStream里面的数据读取到指定字节里面,从0开始读取,读取参数3的长度 Console.WriteLine(Encoding.UTF8.GetString(bytes));//转成字符串打印 fileStream.Close(); //fileStream.Read(bs, 0, bs.Length); //把fileStream里面的数据读取到指定字节数组里面 //Console.WriteLine(Encoding.UTF8.GetString(bs));

二进制数据读写操作

概念

二进制原始读写操作,通过BinaryWriter和BinaryReader进行实现,写入和读取性能比filestream高,写入数据类型可以是各种类型
BinaryWriter
BinaryReader

写入数据

//1创建文件流,FileStream一般用于作为其他读写操作的文件流 FileStream fs = new FileStream(@"1.txt",FileMode.Create,FileAccess.ReadWrite); //2创建写入流 BinaryWriter bw = new BinaryWriter(fs); //3写入内容,传入一个字节数组(单独存单独取) //bw.Write(10);//写入整形数据 //bw.Write(true );//写入bool数据 //bw.Write("hello"); //bw.Write(10.2); //写入数据,传递一个字节数组 bw.Write(new UTF8Encoding().GetBytes("true"));//传入一个数组 bw.Write(new UTF8Encoding().GetBytes("10")); bw.Write(new UTF8Encoding().GetBytes("你好")); fs.Flush();//清空缓存区 fs.Close();//关闭文件流 bw.Close();//关闭文件流

读取数据

//创建文件流对象 fs=new FileStream(@"1.txt",FileMode.Open,FileAccess.ReadWrite); //创建一个二进制读取对象 BinaryReader br=new BinaryReader(fs); //一般不会采用单独读一个数据 //Console.WriteLine(br.ReadUInt32()); //Console.WriteLine(br.ReadBoolean()); //Console.WriteLine(br.ReadString()); //Console.WriteLine(br.ReadDouble()); //使用一次读完,采用while循环去循环去读,知道把数据读完 byte[] bytes=new byte[fs.Length]; while (br.Read(bytes ,0,bytes .Length )>0)//等于0证明读完了 { Console.WriteLine(Encoding.UTF8.GetString(bytes)); } br.Close();
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/25 2:07:19

中文语音合成首选:GPT-SoVITS优化适配本地化发音习惯

中文语音合成的破局者:GPT-SoVITS 如何重塑本地化发音体验 在智能音箱念出“今天气温是25度”时,你有没有一瞬间觉得它像极了某位熟人?这种“似曾相识”的语音质感,不再是大型科技公司的专属魔法。如今,只需一段一分钟…

作者头像 李华
网站建设 2026/1/12 4:47:53

25、Drupal开发:Windows环境搭建与Omega主题应用指南

Drupal开发:Windows环境搭建与Omega主题应用指南 1. Windows开发环境下的Drupal开发风险与注意事项 在Drupal开发中,使用IIS和SQL Server替代传统的Apache和MySQL,也就是采用“WISP”堆栈来创建网站,这处于Drupal开发的前沿,但也伴随着一定风险。 Drupal 7的数据抽象层…

作者头像 李华
网站建设 2025/12/30 15:24:25

GPT-SoVITS模型压缩与加速:适用于边缘设备的轻量化尝试

GPT-SoVITS模型压缩与加速:适用于边缘设备的轻量化尝试 在智能语音助手、个性化导航播报和无障碍交互日益普及的今天,用户不再满足于“能说话”的机器,而是期待一个声音熟悉、语气自然、真正“像自己”的数字分身。然而,实现高质量…

作者头像 李华
网站建设 2026/1/5 21:26:50

24、从入门到精通:使用Omega Starter Kit打造网站

从入门到精通:使用Omega Starter Kit打造网站 1. 区域配置 在完成区域映射后,我们要在Omega管理页面中声明每个区域的信息。具体操作是依次设置各区域的参数。 - 用户区域 :该区域在我们的主题中不会使用,所以将其关闭。 - 品牌区域 :这是一个简单的区域,我们仅使…

作者头像 李华
网站建设 2025/12/26 6:01:19

GPT-SoVITS能否用于生成天气预报语音内容?

GPT-SoVITS能否用于生成天气预报语音内容? 在城市清晨的广播里,一声温润熟悉的女声播报着“今天晴转多云,气温18到25摄氏度”,语气平稳、节奏自然,仿佛是某位资深气象主播。但你可能不知道,这声音并非出自真…

作者头像 李华
网站建设 2025/12/27 21:33:33

防病毒软件干扰致STM32CubeMX打不开?工业安全策略调整建议

STM32CubeMX 打不开?别急着重装,先看看是不是你的杀毒软件在“保护”你最近有好几个做嵌入式开发的朋友私信我:“STM32CubeMX 点了没反应,双击图标直接静默失败,啥提示都没有,到底是啥问题?”一…

作者头像 李华