阿拉善盟网站建设_网站建设公司_Redis_seo优化
2025/12/24 23:57:53 网站建设 项目流程

排序列表

对键进行排序的集合 访问时候可以通过键进行访问 也可以索引值进行访问,可以当成是ArrayList和字典的结合

首先定义排序使用SortedList进行定义

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

通过键进行访问

Console.WriteLine(sort[10]);//张三

通过索引值进行访问

Console.WriteLine(sort.GetByIndex(1));//李四

清空列表

sort.Clear();

指定键移除张三

sort.Remove(10);

最后打印排序

Console.WriteLine(sort.ContainsKey(20)); foreach (DictionaryEntry item in sort) Console.WriteLine(item.Value);

File文件读写操作

File文件进行读写操作使用File需要引用命名

using System.IO; IO的意思是输入和输出

File文件的读写操作的类

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

1. Create

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");

2. fs.Close

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

3. Copy

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

4. Exists

Exists() 判断路径下是否有文件

if (!File.Exists(@"../2.txt")) // 不存在下再去复制 { File.Copy(@"./2.txt", @"../2.txt"); }

5. Move

Move() 从参数1路径文件剪切到参数2路径上

File.Move(@"./2.txt", @"../3.txt");

6. WriteAllText

WriteAllText();以字符串的方法进行写入路径

参数1路径 参数2写入内容

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

7. WriteAllBytes

WriteAllBytes() 以字节的方法进行写入 参数1路径 参数2字节数组

Encoding.UTF8.GetStrings() 把字节数组转成字符串

Encoding.UTF8.GetBytes() 把字符串转成字节数组

byte[] bs = Encoding.UTF8.GetBytes("铁头"); File.WriteAllBytes("1.txt", bs); byte[] bs1 = File.ReadAllBytes(@"1.txt"); // 读取路径的文本,转成字节数组了 Console.WriteLine(Encoding.UTF8.GetString(bs1));

8. WriteAllLines

WriteAllLines() 写换行的格式进行写入

string[] cs = new string[] { "你好", "how are you", "fine thank you", "and you" }; File.WriteAllLines(@"1.txt", cs); string[] sss = File.ReadAllLines(@"1.txt");//读取文本以换行的方法 foreach (string item in sss) { Console.WriteLine(item); }

9. AppendAllText

AppendAllText() 追加文本

File.AppendAllText(@"1.txt", "how old are you");

FileStream 文件流

参数1 指定文件流路径

参数2 指定打开文件模式:

1. FileMode.Open

文件打开的方式 打开现有的文件,如果没有文件 抛出异常

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

2. FileMode.Create

如果存在1.txt 会覆盖原先的文件,如果没有则创建一个

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

3. FileMode.OpenOrCreate

如果存在则打开 如果不存在则新建一个

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

参数3: FileAccess文件权限:

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

FileStream fs = new FileStream(@"1.txt", FileMode.Create, FileAccess.ReadWrite);
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里面的数据读取到指定字节数组里面 Console.WriteLine(Encoding.UTF8.GetString(buffer));//转成字符串打印 fs.Close();

二进制数据读写操作

读写操作的类

二进制原始数据读写操作 通过BinaryWriter和BinaryReader进行实现,写入和读取性能比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.2f);//写入一个浮点类型

写入数据 传递一个字节数组 可以一次传入也可以多次传入

bw.Write(new UTF8Encoding().GetBytes("单刷厚度hi街道i")); bw.Write(new UTF8Encoding().GetBytes("10")); bw.Write(new UTF8Encoding().GetBytes("张三")); fs.Flush();//确保完整写入 bw.Close();//关闭写入流 fs.Close();//关闭文件流

读取文件数据

1 创建文件流对象

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

2 创建一个二进制读取对象

BinaryReader br = new BinaryReader(fs);

3 使用的时候一般采用while进行循环去读写

byte[] buffer = new byte[fs.Length]; while (br.Read(buffer,0,buffer.Length)>0)//循环条件 { Console.WriteLine(Encoding.UTF8.GetString(buffer)); }

一般不会采用单独的去读一个数据 不会采用以下方法

Console.WriteLine(br.ReadInt32());//读取整形的10 Console.WriteLine(br.ReadBoolean()); Console.WriteLine(br.ReadString()); Console.WriteLine(br.ReadDouble()); Console.WriteLine(br.ReadDouble()); Console.WriteLine(br.ReadBoolean()); Console.WriteLine(br.ReadString());
//使用 br.Read(); br.Close();//释放读取对象 fs.Close();//释放文件流

总结

1 BinaryWrite 和 BinaryReader


第一种写入读取: 单独写入指定类型数据的时候 使用bw.Write(100); 通过Console.WriteLine(br.ReadInt32());进行单独读取
第二种写入读取: 传递一个字节数组通过bw.Write 传入字节数组(new UTF8Encoding().GetBytes("单刷厚度hi街道i"));
通过使用while循环进行多次读取
byte[] buffer = new byte[fs.Length];
while (br.Read(buffer,0,buffer.Length)>0)//循环条件
{
Console.WriteLine(Encoding.UTF8.GetString(buffer));
}



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);

File


File.WriteAllText("") File.ReadAllText()
File.WriteAllLines(new string[]{"1","2"})字符串数组
File.WriteAllBytes(Encoding.UTF8.GetBytes("是大红色段数")) 传递字节数组




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

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

立即咨询