news 2025/12/25 5:40:00

【第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进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/25 5:39:59

AutoDock Vina分子对接全流程解析:5步掌握高效药物筛选技术

AutoDock Vina作为分子对接领域的领先工具,能够快速完成蛋白质与配体的结合模式预测。通过本文的系统学习,您将掌握从结构准备到结果分析的完整分子对接实验流程,为药物发现和生物分子研究提供可靠的计算支持。 【免费下载链接】AutoDock-Vin…

作者头像 李华
网站建设 2025/12/25 5:39:47

Ofd2Pdf终极指南:轻松实现OFD到PDF的高效转换

在当今数字化办公环境中,OFD(Open Fixed-layout Document)作为我国自主研发的电子文档格式,在电子发票、公文等领域得到广泛应用。然而,由于PDF格式的通用性和兼容性优势,将OFD文件转换为PDF成为许多用户的…

作者头像 李华
网站建设 2025/12/25 5:39:10

Win11Debloat系统优化工具:一键清理Windows预装垃圾的终极解决方案

厌倦了Windows系统自带的那些永远用不到的预装应用?受够了后台运行的遥测服务消耗系统资源?Win11Debloat正是为你量身打造的系统优化神器,通过智能化的PowerShell脚本,轻松移除Windows 10和Windows 11系统中的数字垃圾&#xff0c…

作者头像 李华
网站建设 2025/12/25 5:39:09

如何用MarkDownload快速将网页内容保存为Markdown文件?终极指南

如何用MarkDownload快速将网页内容保存为Markdown文件?终极指南 【免费下载链接】markdownload A Firefox and Google Chrome extension to clip websites and download them into a readable markdown file. 项目地址: https://gitcode.com/gh_mirrors/ma/markdo…

作者头像 李华
网站建设 2025/12/25 5:39:00

番茄小说下载器完整教程:永久保存心爱小说的终极方案

番茄小说下载器完整教程:永久保存心爱小说的终极方案 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 番茄小说下载器是一款功能强大的开源工具,能够帮助您轻松下载并…

作者头像 李华
网站建设 2025/12/25 5:38:08

Windows系统清理神器:一键优化让你的电脑焕然新生

你是不是也遇到过这样的情况?刚装好的Windows系统,打开一看里面塞满了各种用不上的软件,系统运行起来卡卡的,还时不时弹出信息提示。别担心,今天我要给你介绍一款超级实用的系统清理工具——Win11Debloat,它…

作者头像 李华