news 2026/9/3 6:21:45

【第17天】17c#今日小结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【第17天】17c#今日小结

1.排序列表

排序列表:对进行排序的集合,访问时候可以通过键进行访问,也可以索引值进行访问,
可以当成是ArrayList和字典的结合,用类名SortedList来定义

SortedList sort = new SortedList();
sort.Add(10, "张三");
sort.Add(5, "李四");

通过进行访问
Console.WriteLine(sort[10]); -----张三

通过索引值访问
Console.WriteLine(sort.GetByIndex(0));-----李四

sort.Clear(); -----清空列表
sort.Remove(10); -----指定键移除

Console.WriteLine(sort.ContainsKey(5));-----确定sort中是否包含该键若有返回true没有返回false

foreach (DictionaryEntry item in sort) Console.WriteLine(item.Value);-----遍历sort中的键值对

DictionaryEntry-----主要用于表示字典/哈希表中的单个键值对,是值类型。

static void Main(string[] args) { SortedList sort = new SortedList(); sort.Add(10, "张三"); sort.Add(5, "李四"); Console.WriteLine(sort[10]); Console.WriteLine(sort.GetByIndex(0)); // sort.Clear(); sort.Remove(10); Console.WriteLine(sort.ContainsKey(5)); foreach (DictionaryEntry item in sort) Console.WriteLine(item.Value); Console.ReadKey(); }

2.File文件读写操作

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

1 .Create()创建一个文件流,指定文件位置
文件位置 可以是绝对路径C:\Users\Administrator\Desktop\1.txt
FileStream fs = File.Create(@"C:\Users\Administrator\Desktop\1.txt");

可以是相对路径1.txt 默认的情况在bin-->debug文件下
FileStream fs = File.Create(@"1.txt");

../1.txt 相对默认路径(debug文件下)上一层路径
FileStream fs = File.Create(@"../1.txt");

./也是默认路径
FileStream fs = File.Create(@"./2.txt");

Close()方法是释放资源的关键方法

fs.Close();
如果不写 fs.Close();出现 2.txt 正在被使用

2 .Copy()把文件从参数1路径复制到参数2这个路径上
destination 目的
source:源

3.Exists()判断路径下是否有文件
if (!File.Exists(@"../2.txt")) ----- 不存在下再去复制
{
File.Copy(@"./2.txt", @"../2.txt");
}

4.Move()从参数1路径文件剪切到参数2路径上
File.Move(@"./2.txt", @"../3.txt");

5.Delete()删除指定路径下文件
File.Delete(@"../3.txt");

6.WriteAllText();以字符串的方法进行写入路径,
参数1路径 参数2写入内容

ReadAllText()-----读取文本

File.WriteAllText("1.txt", "刘刘刘刘刘");
string s = File.ReadAllText("1.txt",Encoding.UTF8); -----参数1文件路径 参数2是编码格式
Console.WriteLine(s);

7 .WriteAllBytes()以字节的方法进行写入 参数1路径 参数2字节数组、
Encoding.UTF8.GetStrings()把字节数组转成字符串
Encoding.UTF8.GetBytes()把字符串转成字节数组,
byte[] bs = Encoding.UTF8.GetBytes("铁头在靖国神厕撒一泡尿");
File.WriteAllBytes("1.txt", bs);

8.WriteAllLines()写换行的格式进行写入---参数一路径,参数二字符串数组

9.AppendAllText()追加文本-----参数一路径,参数二字符串

3.FileStream文件流

参数1 指定文件流路径
参数2 指定打开文件模式:

FileMode.Open 打开现有的文件 ,如果没有文件,抛出异常

FileMode.Create 如果存在1.txt 会覆盖原先的文件,如果没有创建一个新的文件FileMode.OpenOrCreate, 如果存在则打开,如果不存在则新建一个

参数3:FileAccess文件权限:

FileAccess.ReadWrite 具备文件读写权限,
FileAccess.Read:只读权限,
FileAccess.Write写入权限

FileStream fs = new FileStream(@"1.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);

fs.WriteByte()-----写入字节 参数字节类型
fs.Write() -----如果写入是字符串 使用write()这个API(方法)

fs.Position = 1;-----设置当前流位置

string s = "你好世界,为啥有乱码,为啥马赛克打在脸上";
byte[] bs = Encoding.UTF8.GetBytes(s);------把字符串转成字节数组
fs.Write(bs, 0, bs.Length); ------ 参数1 写入字节数组 ,参数2是写入开始位置 参数3 写入的长度
fs.Flush();------清空缓存区 确保文件流写入文件中
fs.Close();------关闭文件流

fs = new FileStream(@"1.txt", FileMode.Open, FileAccess.ReadWrite);----- 严格来说 读取的时候文件的打开方式选成Open
byte[] buffer = new byte[fs.Length];-----字节数组不能写太大 也不能写太小,
fs.Read(buffer, 0, buffer.Length); -----把fs里面的数据读取到指定字节数组里面 从0开始读取,读取参数3长度
Console.WriteLine(Encoding.UTF8.GetString(buffer));----- 转成字符串打印
fs.Close();

4.二进制数据读写从操作

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

1.创建文件流,FileStream一般用于作为其他类读写操作的文件流
FileStream fs = new FileStream(@"1.txt", FileMode.Create, FileAccess.ReadWrite);

2 创建写入流
BinaryWriter bw = new BinaryWriter(fs);

3 写入内容 传入指定的类型
bw.Write(100); -----写入整型数据
bw.Write(true); -----写入一个bool数据
bw.Write("你好对对对"); -----字符串类型
bw.Write(10.2); -----浮点类型

写入数据:传递一个字节数组
bw.Write(new UTF8Encoding().GetBytes("你说的是颠三倒四颠三倒四"));

读取文件数据

创建文件流对象
fs = new FileStream(@"1.txt", FileMode.Open, FileAccess.ReadWrite);

创建一个二进制读取对象
BinaryReader br = new BinaryReader(fs);

//一般不会采用单独去读一个数据
//Console.WriteLine(br.ReadInt32()); // 读取整型的 10
//Console.WriteLine(br.ReadBoolean()); //
// Console.WriteLine(br.ReadString());
//Console.WriteLine(br.ReadDouble());


读取的时候一般采用while进行循环去读
byte[] buffer = new byte[fs.Length];
while (br.Read(buffer, 0, buffer.Length) > 0) ----- br.Read(buffer, 0, buffer.Length) 等于0 证明读取完了
{
Console.WriteLine(Encoding.UTF8.GetString(buffer));
}
br.Close();//释放读取对象
fs.Close(); //释放文件流

这几个的区别

1.BinaryWriter 和 BinaryReader
第一种写入读取:单独写入指定类型数据时候 ,通过bw.Write(100); 通过br.ReadInt32()进行单独读取
第二种写入读取 :传递一个字节数组, bw.Write(new UTF8Encoding().GetBytes("你说的是颠三倒四颠三倒四"));
通过使用while进行多次读取
byte[] buffer = new byte[fs.Length];
while (br.Read(buffer, 0, buffer.Length) > 0)
{
Console.WriteLine(Encoding.UTF8.GetString(buffer));
}

2.FileStream
1 fs.WriteByte() 写入单个字节 ,通过fs.ReadByte() 读取单个字节
2 写入字节数组 string s = "你好世界,为啥有乱码,为啥马赛克打在脸上";byte[] bs = Encoding.UTF8.GetBytes(s); fs.Write(bs, 0, bs.Length);
读取字节数组 byte[] buffer = new byte[fs.Length]; fs.Read(buffer, 0, buffer.Length)

3.File
File.WriteAllText("") File.ReadAllText()
File.WriteAllLines(new string[]{"1","2"}) 字符串数组
File.WriteAllBytes(Encoding.UTF8.GetBytes("铁头在靖国神厕撒一泡尿")) 传递字节数组




版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 23:31:26

终极解决方案:轻松实现IDM无限试用,告别30天限制烦恼

还在为IDM试用期结束而苦恼吗?每次下载到一半弹出注册提示的尴尬场景是否让你头疼不已?现在,一款简单易用的IDM试用重置工具将彻底解决你的困扰,让你无需特殊处理即可持续享受高速下载体验。😊 【免费下载链接】idm-tr…

作者头像 李华
网站建设 2026/9/2 23:30:52

如何永久重置IDM试用期:简单三步解决下载软件过期问题

如何永久重置IDM试用期:简单三步解决下载软件过期问题 【免费下载链接】idm-trial-reset Use IDM forever without cracking 项目地址: https://gitcode.com/gh_mirrors/id/idm-trial-reset 还在为IDM试用期结束而烦恼吗?这款专业的IDM试用重置工…

作者头像 李华
网站建设 2026/9/3 1:22:55

AMD Ryzen处理器SMUDebugTool实战全解析

AMD Ryzen处理器SMUDebugTool实战全解析 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gitcode.com/gh_mirrors/smu…

作者头像 李华
网站建设 2026/8/30 17:15:29

R3nzSkin:3分钟解锁英雄联盟全皮肤完整指南

R3nzSkin:3分钟解锁英雄联盟全皮肤完整指南 【免费下载链接】R3nzSkin Skin changer for League of Legends (LOL).Everyone is welcome to help improve it. 项目地址: https://gitcode.com/gh_mirrors/r3n/R3nzSkin 你是否曾经因为心仪的皮肤价格太高而望而…

作者头像 李华
网站建设 2026/9/3 1:31:20

SingleFile浏览器扩展终极指南:从入门到精通

SingleFile浏览器扩展终极指南:从入门到精通 【免费下载链接】SingleFile Web Extension and CLI tool for saving a faithful copy of a complete web page in a single HTML file 项目地址: https://gitcode.com/gh_mirrors/si/SingleFile SingleFile是一款…

作者头像 李华
网站建设 2026/9/2 22:16:54

DAY27@浙大疏锦行

1. 装饰器的思想:进一步复用2. 函数的装饰器写法3. 注意内部函数的返回值

作者头像 李华