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

C#种更高级的文件处理

BufferStream

特点

缓存区存储对象,特点读取速度比较快,也需要包装其他文件流(FileStream)读取只有这一个类

代码

//创建一个临时存储对象 BufferedStream buff = new BufferedStream(File.Create(@"1.txt")); //写入内容 byte[] infor = new UTF8Encoding().GetBytes("床前明月光,疑是地上霜,举头望明月,低头思故乡"); buff.Write(infor,0,infor.Length);//从字节数组0的位置开始写,写字节数组长度的内容 buff .Flush(); buff.Close(); //创建一个读取对象 buff = new BufferedStream(File.OpenRead(@"1.txt")); byte[]arr=new byte[buff.Length];//定义数组读取数据,长度为缓存区的大小 while(buff.Read(arr, 0, arr.Length) > 0)//如果数据没读完,继续读 { Console.WriteLine(Encoding.UTF8.GetString(arr));//把arr转为字符串进行展示 }

directoy文件夹操作对象

目的

Directory文件夹:提供一些处理文件夹的操作的属性和方法
DirectoryInfo:设置文件夹属性的类 例如隐藏文件夹,只读文件夹等属性

//创建文件夹,创建在Debug文件夹下,Image/OK文件夹 Directory.CreateDirectory(@"Image/OK"); //Exists判断文件路径是否存在 if (!Directory.Exists(@"Config")) { Directory.CreateDirectory(@"Config"); } //Directory.GetCurrentDirectory()获取当前文件路径,是一个绝对路径 Console.WriteLine(Directory.GetCurrentDirectory()); //Delete()删除文件夹的时候,参数2为true,可以删除目录以及子目录,参数2为false,如果说有子目录就不允许删除 Directory.Delete(@"Image", false); //Move(),把参数1位置的文件剪切到参数2这个位置上 if (!Directory.Exists(@"../Text1")) { Directory.Move(@"Image", @"../Text1"); } //GetDirectories()获取当前目录的子目录(文件夹) string[] s= Directory.GetDirectories("D:\\"); foreach (var item in s) { Console.WriteLine(item+"---"); } //GetFiles获取文件 //Attributes属性 // FileAttributes.Hidden;文件隐藏属性 DirectoryInfo info = new DirectoryInfo(@"新建文件夹"); info.Attributes = FileAttributes.Hidden;

StreamReader和StreamWriter

BinaryReader br=new BinaryReader();二进制读取原始数据,参数是文件流,必须借助filestream,有时候会出现文档内容乱码现象

StreamReader 读取流,实现文件读取功能,并且参数可以直接是路径和编码

using (),声明了一个块级的作用域,在using声明的变量,在{ }里面已经被释放

useing(StreamReader sr=new StreamReader(@"1.txt",Enconding.UFT8)) { //sr.ReadLine()读取一行 string line; while((line=sr.ReadLine())!=null)//一行一行去读,如果读取这一行赋值line,并且line==null证明读取完了 { Console.WriteLine(line); } } //StreamWrite写入对象 using(StreamWriter sw =new StreamWriter(@"2.txt")) { sw.WriteLine("平安夜"); }
http://www.jsqmd.com/news/141890/

相关文章:

  • PaddlePaddle镜像一键部署:高效GPU算力加速中文NLP模型训练
  • PCB线宽和电流的关系原理:截面积作用详解
  • HackRF软件定义无线电快速入门完整指南:从零构建无线通信系统
  • 突破传统瓶颈:现代C++ CSV解析器如何重塑大数据处理体验
  • 3D抽奖系统企业级部署:从零搭建专业活动平台的完整指南
  • LeetDown降级工具终极指南:A6/A7设备完美降级教程
  • 打造专业级图片灯箱:从零基础到精通Lightbox2的终极指南
  • 如何用TurboWarp Packager实现Scratch项目跨平台发布
  • OpenAMP入门实践:在Zynq平台上运行首个应用
  • 智能设计助手:重新定义你的创意工作流
  • SVG优化新视角:SVGOMG高效压缩完全手册
  • 一文说清LCD Image Converter基本操作流程
  • Zotero Linter插件终极指南:一键搞定文献格式规范化
  • Windows系统完美驾驭Mac触控板:专业驱动配置全攻略
  • Simple Live:如何用一个应用解决多平台直播观看难题
  • PhotoGIMP完全指南:从Photoshop到开源图像编辑的平滑过渡
  • 5分钟搞定抖音无水印下载:F2工具完整使用指南
  • Dify镜像性能测试报告:资源消耗与响应速度实测数据
  • UnityChess:沉浸式3D国际象棋游戏的终极体验
  • 【花雕学编程】Arduino BLDC 之基础网格地图和 A* 算法实现
  • es连接工具在Kibana中的项目应用详解
  • Univer数据可视化集成技术深度解析
  • 车辆识别技术革命:如何利用VMMRdb数据集实现精准车型识别
  • 强力突破3步基因组注释解析:科研工作者的效率革命方案
  • 新手教程:AUTOSAR中NM报文唤醒功能入门必看指南
  • 终极指南:使用go-cursor-help工具彻底解决Cursor试用限制问题
  • Realtek RTL8192FU Linux驱动兼容性解决方案:技术原理与实战指南
  • Typeset文本排版工具:让网页文字拥有印刷级美感
  • 工业现场通信优化:USB转485驱动系统学习指南
  • AI开发平台革命:ModelScope如何重塑智能应用构建新范式