一、排序列表
排序列表:对键进行排序的集合,访问时候可以通过键进行访问,也可以索引值进行访问,
可以当成是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);遍历 当遍历操作只有一句的话可以省略{}
foreach (DictionaryEntry item in sort) Console.WriteLine(item.Value);二、File文件
File:文件读写操作的类,主要包括功能:文件读写、文件的复制、剪切、删除、创建等操作
1 Create() 创建一个文件流,指定文件位置
FileStream fs = File.Create(@"C:\Users\Administrator\Desktop\1.txt");上述是绝对路径,可以是相对路径1.txt 默认的情况在bin-->debug文件下
FileStream fs = File.Create(@"1.txt");默认路径的上一级路径
FileStream fs = File.Create(@"../1.txt");2 Copy把文件从参数1路径复制到参数2这个路径上
File.Copy(@"./2.txt", @"../2.txt");3 Exists() 判断路径下是否有文件
if (!File.Exists(@"../2.txt")) // 不存在下再去复制 { File.Copy(@"./2.txt", @"../2.txt"); }4 Move() 从参数1路径文件剪切到参数2路径上
File.Move(@"./2.txt", @"../3.txt");5 删除指定路径下文件
File.Delete(@"../3.txt");6 WriteAllText();以字符串的方法进行写入路径,参数1路径 参数2写入内容
File.WriteAllText("1.txt", "哈喽,欢迎来到C#世界"); string s = File.ReadAllText("1.txt",Encoding.UTF8); //参数1文件路径 参数2是编码格式7 WriteAllBytes() 以字节的方法进行写入 参数1路径 参数2字节数组、
Encoding.UTF8.GetStrings() 把字节数组转成字符串
Encoding.UTF8.GetBytes() 把字符串转成字节数组
byte[] bs = Encoding.UTF8.GetBytes("举头望明月"); File.WriteAllBytes("1.txt", bs);8 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() 追加文本
File.AppendAllText(@"1.txt","how old are you");三、FileStream文件流
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);写入字符串
//-----------------写入字符串--------------------------- 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();四、二进制数据读写从操作
二进制原始数据读写操作 通过BinaryReader 和BinaryWriter进行实现,写入和读取性能比 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("阿巴阿巴阿巴")); bw.Flush(); // 确保w完整写入 bw.Close(); // 关闭写入流 fs.Close(); // 关闭文件流-读取文件数据
//创建文件流对象 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(); //释放文件流总结
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)); }FileStream
1 fs.WriteByte() 写入单个字节 ,通过fs.ReadByte() 读取单个字节 2 写入字节数组 string s = "你好欢迎来到C#世界";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("三角洲加强露娜")) 传递字节数组