齐齐哈尔市网站建设_网站建设公司_字体设计_seo优化
2026/1/16 12:32:39 网站建设 项目流程

BufferStream字节流临时存储对象

BufferStream:缓冲区存储对象

特点:读取性能比较快 也需要包装成其他文件流(FileStream) 读取只有这一个类

1 创建临时存储对象

BufferedStream buff =new BufferedStream(File.Create(@"1.txt"))

2 写入内容 传递一个字节数组

byte[] info1 = new UTF8Encoding().GetBytes("Hello\n"); buff.Write(info1 , 0 , info1.Length);//从字节数组的0位置开始写 写字节数组长度的内容 byte[] info2 = new UTF8Encoding().GetBytes("Hello Good Yes"); buff.Write(info2, 0, info2.Length); byte[] info3 = new UTF8Encoding().GetBytes("山南地委你当年"); buff.Write(info2, 0, info2.Length); buff.Flush();//确保完整输入 buff.Close();//停止写入流

3 创建读取存储对象

buff = new BufferedStream(File.OPenRead(@"1.txt")); byte[] arr =new byte[buff.Length] //定义一个数组存储读取的数据 长度为缓冲区的大小 while (buff.Read(arr , 0 , arr.Length)>0) //如果数据没有读取完毕则继续读取 { Console.Write(Encoding.UTF8.GetString(arr)); //把arr转成字符串进行展示 //Encoding.UTF8.GetString转换成字符串 }

Directoy文件夹操作对象

Directory: 提供一些处理文件夹的操作的属性和方法

DirectoryInfo: 设置文件夹属性的类 例如隐藏文件夹 只读文件夹等属性

1 创建一个文件夹

创建在Debug文件夹下面 Image/OK这样的一个目录

Directory.CreateDirectory(@"Image/OK")

2 Exists

判断文件路径是否存在

if(!Directory.Exists(@"Config")) { Console.WriteLine("111"); Directory.CreateDirectory(@"Config"); }

3 GetCurrentDirtectory

获取当前的目录 它是一个绝对路径

Console.WriteLine(Directory.GetCurrentDirectory());

4 Delete

删除文件夹的时候 参数2为true,可以删除目录以及子目录

Directory.Delete(@"Image",true)

参数2为false的话 不允许删除子目录

5 Move

把参数1位置文件 移动到参数2这个位置上

if (!Directory.Exists(@"../Test1")) { Directory.Move(@"Image1",@"../Test1"); }

6 GetDirectories

获取当前目录的子目录

string[] paths =Directory.GetDirectories("E:\\aaa\\VisualStudio\\第十九天\\Directoy文件夹操作对象\\bin\\Debug"); foreach (string path in paths) { Console.WriteLine(path) }

7 GetFiles

获取文件

string[] path1 = Directory.GetFiles("E:\\aaa\\VisualStudio\\第十九天\\Directoy文件夹操作对象\\bin\\Debug"); foreach (var item in path1) { Console.WriteLine(item); }

8 DirectoryInfo

DirectoryInfo info = new DirectoryInfo(@"新建文件夹"); //Attributes属性 //FileAttributes.Hidden 文件的隐藏属性 info.Attributes = FileAttributes.Hidden;

StreamReader和StreamWrite

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

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

1 using

声明一个块级的作用域 在声明的变量 在{}体之后已经被释放

参数1是路径 参数2是编码格式

using (StreamReader sr = new StreamReader(@"1.txt",Encoding.UTF8)) { //sr.ReadLine 读取一行 string lines; while ((lines = sr.ReadLine() !=null)//一行一行的读写 如果读取了这一行则赋值给lines 并且 lines==null则证明读取完毕 { Conlose.WriteLine(lines); } }

StreamWriter

2 写入对象

using (StreamWriter sw = new StreamWrite(@"2.txt")) { sw.WriteLine("张三") }

Json序列化和反序列化

文件内容存储的格式

//1 json格式
//2 xml格式
//3 ini格式
//4 csv格式

1 Json格式

整体是一个字符串结构 [] 代表数组 {}代表对象

json字符串要求:属性必须使用"" 属性可以基本数据类型也可以是对象类型 不能是函数 最后一个属性值不能带逗号

/*json字符串格式
* {
* "name":"zs",
* "age":10
* }
*/

序列化: 把对象转成字符串
反序列化: 把字符串格式转成对象
目的: 先把对象转成json字符串格式 再通过之前学的写入对象写到文本中 读取的先从文档读取成一个字符串 再把字符转成对应的对象

直接使用第三方来进行json序列化

第三方:使用Json.net第三方:点击引用-->管理nuget程序包-->切换浏览输入第三方包含关键字-->点击右边安装

首先创建一个类

class People { public string Name { get; set; } public int Age { get; set; } }

1 把对象转成json字符串

People p1 = new People() { Name = "张三", Age = 19 };

把对象转成json字符串

序列化过程

SerializeObject() 解析对象 把对象转成字符串 参数转成字符串的对象 例如p1转成字符串

string dataString = JsonConvert.SerializeObject(p1);

写入指定文档

File.WriteAllText(@"1.txt", dataString);

2 读取

string ss = File.ReadAllText(@"1.txt")

反序列化过程
把字符串转成对象

People pp = JsonConvert.DeserializeObject<People>(ss); Console.WriteLine(pp.Name+pp.Age);

数组转成Json格式

首先创建一个类

class Student { public string Id { get; set; } public string Name { get; set; } public int Age { get; set; } }

创建一个集合

List<Student> list = new List<Student>();

使用for循环

for (int i = 0; i < 10; i++) { Student s = new Student(); s.Name = "仓" + i + "号"; s.Age = i+18; s.Id = "00" + i; list.Add(s); }

存储本地文

把数组转成json字符串

string data= JsonConvert.SerializeObject(list); using (StreamWriter sw = new StreamWriter(@"1.json")) { sw.WriteLine(data);//写入文档 }

读取本地文

读取本地文件值是一个字符串类型

using (StreamReader sr = new StreamReader(@"1.json")) { string lines; while ((lines = sr.ReadLine()) != null) { Console.WriteLine(lines); //字符串转成对象 List<Student> list1 = JsonConvert.DeserializeObject<List<Student>>(lines); for (int i = 0; i < list1.Count; i++) { Console.WriteLine(list1[i].Name+list1[i].Age+ list1[i].Id); } } }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询