C#文件读取

File

介绍

using System.IO;IO输入和输出

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

方法

cs 复制代码
  Create()创建一个文件流,指定文件位置,
  //文件位置可以是绝对路径,C:\Users\1\Desktop\1.txt就是绝对路径
  FileStream fileStream = File.Create(@"C:\Users\1\Desktop\1.txt");
cs 复制代码
//可以是相对路径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 正在使用中
cs 复制代码
//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文件流

写法

cs 复制代码
//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);

方法

cs 复制代码
 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

写入数据

cs 复制代码
 //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();//关闭文件流

读取数据

cs 复制代码
   //创建文件流对象
   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();
相关推荐
hoiii1872 小时前
基于C#的PLC串口通信实现
开发语言·c#·plc
rabbitlzx2 小时前
《Async in C# 5.0》第七章 异步代码工具集
c#·asynchronous
神仙别闹2 小时前
基于 SeetaFace+VS2017+Qt 的人脸识别
开发语言·qt
电商API_180079052472 小时前
进阶篇:电商商品评论情感分析 + 关键词挖掘(Python NLP 实战)
大数据·开发语言·网络·数据库·人工智能
chao1898442 小时前
基于MATLAB的ADI方法求解偏微分方程详解
开发语言·算法·matlab
AAA阿giao2 小时前
拼乐高式开发:深入剖析 React 组件通信、弹窗设计与样式管理
开发语言·前端·javascript·react.js·前端框架·props·components
apihz2 小时前
免费手机号归属地查询API接口详细教程
android·java·运维·服务器·开发语言
回吐泡泡oO2 小时前
找不到rar.RarArchiveInputStream?JAVA解压RAR5的方案。
java·开发语言
JienDa2 小时前
PHP 静态分析工具实战:PHPStan 和 Psalm 完全指南
开发语言·php