1.复习
字符串
(1)字符串的不可变性
(2)字符串的方法:
1)Split()
分割 把字符串中不想要的内容分割掉 返回一个字符串类型的数组
可以添加StringSplitOption.RemoveEmptyEntries 把空格都去除了,但是前面需要放入一个字符数组类型
例:
1 string str = "ABC DE FG"; 2 string [] s=str.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
2)Substring()
切割 切割字符串 返回一个string类型
输入0-?的数值(把字符串当做一个char类型的数组,数值为下标),返回一个从输入数值开始算起的字符串,前面的都截掉
如果后面还要添加一个数值 ,那就是截取的长度
例:
1 string str = "ABCDEFG"; 2 str=str.Substring(2,3)
3)ToUpper()
转大写 把字母转为大写
例:
1 string str = "abcdefg"; 2 str=str.ToUpper();
4)ToLower()
转小写 把字母转为小写
例:
1 string str= "ABCDEFG" 2 str=str.ToLower();
5)Trim()
去两端的空格
例:
1 string str=" abcdefg " 2 str=str.Trim();
6)TrimEnd()
去尾部空格
例:
1 string str = "abcdefg "; 2 str=str.TrimEnd();
7)TrimStart()
去首部的空格
例:
1 string str = " abcdefg"; 2 str=str.TrimEnd();
8)Contains()
判断是否包含某个字符串
例:
1 string str = "ABCDEFG"; 2 if(str.Contains("CD")) 3 {Console.WriteLine("包含");} 4 else 5 {Console.WriteLine("不包含");}
9)Replace()
替换 把旧的字符或字符串替换成新的字符或字符串,返回一个新的字符串
例:
1 string str = "小李子是个白痴"; 2 str=str.Replace("白痴","**");
10)IndexOf()
查找某个字符第一次出现的位置,返回一个Int类型,如果没有,返回一个-1。
例:
1 string str = "adasafdsgfdhgfdhg"; 2 int nums=str.IndexOf('g');
11)LastIndexOf()
查找某个字符最后一次出现的位置,返回一个Int类型,如果没有,返回一个-1。
12)StartsWith()
判断是否以某个字符开头,返回一个bool类型
例:
1 string str = "adasafdsgfdhgfdhg"; 2 if(str.StartsWith("a")) 3 {Console.WriteLine("是的");} 4 else 5 {Console.WriteLine("不是");}
13)EndsWith()
判断是否以某个字符结尾,返回一个bool类型
例:
1 string str = "adasafdsgfdhgfdhg"; 2 if(str.StartsWith("g")) 3 { 4 Console.WriteLine("是的"); 5 } 6 else 7 { 8 Console.WriteLine("不是"); 9 }
14)string.join()
把一个数组按指定的分隔符连接,返回一个string类型
join()里第一个放自定义string类型的分隔符,第二个放要连接的数组
例:
1 int[] str = { 1,2,3,4,5,6,7,8 }; 2 string b=string.Join("|", str);
15)string.IsNullOrEmpty()
判断一个字符串是null或者空
例:
1 string str = ""; 2 if(string.IsNullOrEmpty(str)) 3 { 4 Console.WriteLine("是的"); 5 } 6 else 7 { 8 Console.WriteLine("不是"); 9 }
16)ToCharArray()
把字符串转为char类型的数组
例:
1 string s = "121324"; 2 char [] chs=s.ToCharArray();
17)new string (char[] chs)
把数组转为字符串
例:
1 char[] chs = { '1', '2', '3', '4', '5', '6' }; 2 string str=new string(chs);
继承:解决类中的代码冗余,把类中的一些相同的代码提取出来封装成一个父类
属性、方法、构造函数(子类默认调用父类无参数的构造函数,因为子类要使用父类的成员,就要创建父类的对象)
this:当前类的对象
调用自己的构造函数
base:调用父类的构造函数
new:隐藏父类的成员
2.里氏转换
object 是一切类型的基类
1)子类可以赋值给父类:如果一个地方需要一个父类作为参数,我们可以给一个子类代替
例1:
父类:Person 子类:Student
Student s=new Student();
Person p=s;
简写:
Person p=new Student();
例2:
string str= String.Join("|",object类)
父类不能调用子类成员,但是子类可以赋值给父类
2)如果父类中装的是子类对象,那么可以将这个父类强转为子类对象
子类可以调用父类的成员,但是父类不能调用子类的成员
例:
Student ss=(Student)p;
ss.StudentSayHello();
3)进行里氏转换强转的时候经常有可能抛异常,需要来判断。
is:表示类型转换,如果能够转换成功,则返回一个true,否则返回一个false.不会抛异常。
例:
Person p = new Student();
if(p is Teacher)
{
Teacher ss = (Teacher)p;
ss.TeacherSayHello();
}
else
{
Console.WriteLine("转换失败");
}
as:表示类型转换,如果能够转换则返回对应的对象,否则返回一个Null
例:
Person p = new Student();
Student t = p as Student;
t.StudentSayHello();
练习题
随机打印十个打招呼的方法
1)创建一个10位的父类空白数组
2)创建一个随机数的方法
3)for循环父类数组
4)给随机数赋值1-7,6位
5)用switch-case随机给数组赋值各个对象
6)用for循环将10个数组的打印出控制台
7)使用if-else if 将对象强转,由is来判断,并输出方法
((强转)数组名).方法
1 Person[] pers = new Person[10]; 2 Random r = new Random(); 3 for (int i = 0; i < pers.Length; i++) 4 { 5 int rNumber = r.Next(1, 7); 6 switch(rNumber) 7 { 8 case 1:pers[i]=new Student(); 9 break; 10 case 2: 11 pers[i] = new Teacher(); 12 break; 13 case 3: 14 pers[i] = new ShuaiGUO(); 15 break; 16 case 4: 17 pers[i] = new YeShou(); 18 break; 19 case 5: 20 pers[i] = new MeiNv(); 21 break; 22 case 6: 23 pers[i] = new Person(); 24 break; 25 } 26 } 27 for (int i = 0; i < pers.Length; i++) 28 { 29 if(pers[i]is Student) 30 { 31 ((Student)pers[i]).StudentSayHello(); 32 } 33 else if(pers[i] is Teacher) 34 { 35 ((Teacher)pers[i]).TeacherSayHello(); 36 } 37 else if(pers[i] is ShuaiGUO) 38 { 39 ((ShuaiGUO)pers[i]).ShuaiGuoSayHello(); 40 } 41 else if(pers[i] is YeShou) 42 { 43 ((YeShou)pers[i]).YeShouSayHello(); 44 } 45 else if(pers[i] is MeiNv) 46 { 47 ((MeiNv)pers[i]).MeiNvSayHello(); 48 } 49 else 50 { 51 pers[i].PersonSayHello(); 52 } 53 } 54 Console.ReadKey();
4.protected访问修饰符
受保护的:可以在当前类的内部以及该类的子类中访问。
比private的权限高一些
5.Path类
截取一个路径最后一个文件的名称。
例1:
string str = @"C:\Users\SJD\Desktop\123.txt";
int index= str.LastIndexOf('\\');
str=str.Substring(index + 1);
例2:用Path来做,返回一个字符串名字
快速获得一个路径下文件的名字
string str = @"C:\Users\SJD\Desktop\123.txt";
Console.WriteLine(Path.GetFileName(str));
例3:Path.GetFileNameWithoutExtension(str)
获得文件名,但是不包括扩展名
例4:Path.GetExtension(str)
获得文件的扩展名
例5:Path.GetFileNameWithoutExtension(str)
获得文件所在的全目录文件夹
例6:Path.GetFullPath(str)
获得文件所在的全路径
例7:Path.Combine(@"c:\a\","1.txt")
连接两个字符串作为路径
Path这个类是专门用来操作路径的
6.ArrayList集合
//创建一个集合对象
ArrayList list=new ArrayList();
//集合:很多数据的一个集合
//数组:长度不可变、类型单一
//集合的好处:长度可以任意改变,类型随便
例:
list.Add(1);
list.Add(3.14);
list.Add(true);
list.Add("张三");
list.Add('男');
list.Add(5000m);
打印
for (int i = 0; i < list.Count; i++)
{
Console.WriteLine(list[i]);
}
//我们将一个对象输出到控制台,默认情况下,打印的就是这个对象所在的类的命名空间
Add表示添加一个元素
AddRange表示添加一个集合
例:
ArrayList list = new ArrayList();
//添加单个元素用Add
list.Add(true);
list.Add(1);
list.Add("张三");
//添加集合元素用AddRange
list.AddRange(new int[]{1,2,3,4,5,6,7,8,9});
list.AddRange(list);
for(int i=0;i<list.count; i++)
{
console.writeline(list[i]);
}
console.readkey();
list.Clear()
清空所有元素
list.Remove(true);
删除单个元素,写谁就删谁
list.RemoveAt(0);
根据下标去移除元素
list.RemoveRange(0,3);
根据下标去移除一定范围元素,从下标开始,删除几个
list.Reverse();
反转
list.Sort();
升序排列
list.Insert(1, "插入的");
根据下标,插入一个任意元素
list.InsertRange(2, new string[] { "张三","李四","王二麻子"});
根据下标,插入一个任意的集合元素
bool b = list.Contains(1);
Console.WriteLine(b);
判断是否包含某个指定的元素,返回一个Bool类型
if(!list.Contains("小李子"))
{
list.Add("小李子")
}
else
{
console.writeline("已经有了");
}
判断是否不包含某个指定的元素,不包含就创建一个,包含就提示已经有了。
7.集合的长度问题
//count 表示这个集合中实际包含的元素的个数
//capcity表示这个集合中可以包含的元素的个数
每次集合中实际包含的元素个数(count)超过了可以包含的元素的个数(capcity)的时候,
集合就会向内存中申请多开辟一倍的空间,来保证集合的长度一直够用。
个数有1个,就开4个的空间,个数是5,就开8个的空间,依次类推翻倍 X2
8.HashTable集合 键值对集合
字典 孙 sun----孙 根据拼音找sun这个汉字
根据键来找值
HashTable ht=new HashTable();
ht.Add(键,值); 键和值都是object类型的,键和值都是任意的
添加键值对 输入键和值
查找键值对 在键值对集合中,是根据键去找值的。
console.writeline(ht[键]);输出的就是值了。
在键值对集合当中,我们是根据键去找值的。
键值对对象[键]=值;
*******:键值对集合当中,键必须是唯一的,而值是可以重复的
ht.Add(1, "张三");
ht.Add(2, true);
ht.Add(3, '男');
ht.Add(false, "错误的");
ht.Add(5, "张三");
ht[6]="新来的";//这也是一种添加方式
特殊性 ht[1]="把张三干掉";(键必须是唯一的,但是用这种方法可以替换)
[]做了一个判断,如果集合里面键没有1,就把这个键值加进去
如果集合里面键有1,就把它替换掉。
//abc----cba
添加之前先判断一下是否包含abc,如果有就不添加,没有才添加
if(ht.contains(1))
Contains
ContainsKey 这两种都是判断是否包含键
ContainsValue 判断是否包含值
ht.clear();移除集合中所有的元素
ht.Remove();根据键移除
9.foreach循环
foreach 两下tab键
foreach(var item in collection)
{
}
Hashtable ht = new Hashtable();
ht.Add(1, "张三");
ht.Add(2, true);
ht.Add(3, '男');
ht.Add(false, "错误的");
foreach (var item in ht.Keys)
{
Console.WriteLine(ht[item]);
}
根据键来辨别每一项的元素
foreach (var item in ht.Values)
{
Console.WriteLine(item);
}
根据值来辨别每一项的元素
item 集合里的每一项,每一个元素
collection 集合
//var:根据值能够推断出来类型
//c#是一门强类型语言:在代码当中,必须对每一个变量的类型有一个明确的定义
int n=15;
string n2="张三";
double n3=3.14;
decimal n4=5000m;
bool n5=true;
char n6='男';
console.writeline(n.GetType()); 获得变量类型
var n=15;
var n2="张三";
var n3=3.14;
var n4=5000m;
var n5=true;
var n6='男';
console.writeline(n.GetType());通过值获得变量类型
能拿到这个变量类型是因为你已经对这个变量进行了一个明确的定义,已经告诉它这个变量的类型是什么了。
变量必须有一个明确的定义
首先确定变量的类型
//js是一门弱类型语言
//12 3.14 true "fdfsf" 'c'都用var
它不需要对你的变量有一个明确的定义,它可以根据你的值来推断你这个值的类型
为什么不用它,因为
string input;
input="张三";
var input; 会报错,因为input没有给他付初值。在使用推断类型var的时候,就必须给它赋值
input="张三";
根据变量的值来推断变量的类型,之所以不用,是因为使用Var的同时必须赋值
循环次数特别大的时候
foreach的效率是for循环的很多很多倍,次数不高的时候差不多
10.简繁转换
例:
1 private const String Jian = "啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸尽劲荆兢觉决诀绝均菌钧军君峻俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座"; 2 3 private const String Fan = "啊阿埃挨哎唉哀皚癌藹矮艾礙愛隘鞍氨咹俺按暗岸胺案肮昂盎凹敖熬翱襖傲奧懊澳芭捌扒叭吧笆疤巴拔跋靶紦耙壩霸罷爸苩柏百擺佰敗拜稗斑癍搬扳般頒板蝂扮拌伴瓣半か絆邦幫梆榜膀綁棒磅蚌鎊傍謗苞胞包褒剝薄雹保堡飽寶菢報暴豹鮑爆杯碑悲卑丠輩褙贔鋇倍狽備憊焙被奔苯夲笨崩繃甭泵蹦迸逼鼻仳鄙筆彼碧蓖蔽畢斃毖幣庇痹閉敝弊必辟壁臂避陛鞭邊編貶扁便變卞辨辯辮遍標彪膘表鱉憋別癟彬斌瀕濱賓擯兵栤柄丙秉餅炳疒並箥菠播撥缽波博葧搏鉑箔伯帛舶脖膊渤泊駁捕卜哺補埠鈈咘步簿蔀怖擦猜裁材才財睬踩采彩菜蔡餐參蠶殘慚慘燦蒼艙倉滄藏操糙槽曹草廁策側冊測層蹭插叉茬茶查碴搽察岔差詫拆柴豺攙摻蟬饞讒纏鏟產闡顫昌猖場嘗瑺長償腸廠敞暢唱倡超抄鈔朝嘲潮巢吵炒車扯撤掣徹澈郴臣辰塵晨忱沉陳趁襯撐稱城橙成呈乘程懲澄誠承逞騁秤吃癡持匙池遲弛馳恥齒侈尺赤翅斥熾充沖蟲崇寵抽酬疇躊稠愁籌仇綢瞅醜臭初絀櫥廚躇鋤雛滁除楚礎儲矗搐觸處揣〣穿椽傳船喘串瘡窗幢床闖創吹炊捶錘垂春椿醇唇淳純蠢戳綽疵茨磁雌辭慈瓷詞此刺賜佽聰蔥囪匆從叢湊粗醋簇促躥篡竄摧崔催脆瘁粹淬翠村存団磋撮搓措挫諎搭達答瘩咑夶槑歹傣戴帶殆玳貸袋待逮怠耽擔丼單鄲撣膽旦氮但憚淡誕彈蜑當擋黨蕩檔刀搗蹈倒島禱導箌稻悼噵盜德嘚啲蹬燈登等瞪凳鄧堤低滴迪敵笛狄滌翟嫡抵底地蒂第渧弟遞締顛掂滇碘點典靛墊電佃甸店惦奠澱殿碉叼雕凋刁掉吊釣調跌爹碟蝶迭諜疊丁盯叮釘頂鼎錠萣訂丟東冬董懂動棟侗恫凍洞兜抖鬥陡豆逗痘都督蝳犢獨讀堵睹賭杜鍍肚喥渡妒端短鍛段斷緞堆兌隊對墩噸蹲敦頓囤鈍盾遁掇哆哆奪垛躲朵跺舵剁惰墮蛾峨鵝俄額訛娥惡厄扼遏鄂餓恩洏ㄦ聑爾餌洱②貳發罰筏伐乏閥法琺藩帆番翻樊礬釩繁凡煩反返范販犯飯泛坊芳方肪房防妨仿訪紡放菲非啡飝肥匪誹吠肺廢沸費芬酚吩氛汾紛墳焚汾粉奮份忿憤糞豐葑楓蜂峰鋒闏瘋烽逢馮縫諷奉鳳佛否夫敷膚孵扶拂輻幅氟符伏俘垺浮涪鍢袱弗甫撫輔俯釜斧脯腑府腐赴副覆賦複傅付阜父腹負富訃附婦縛咐噶嘎該改概鈣蓋溉幹咁杆柑竿肝趕感稈敢贛岡剛鋼缸肛綱崗港杠篙皋高膏羔糕搞鎬稿告哥歌擱戈鴿胳疙割革葛格蛤閣隔鉻個各給根哏耕哽庚羹埂耿梗工攻功恭龔供躬公宮弓鞏汞拱貢囲鉤勾溝苟狗垢構購夠辜菇咕箍估沽孤姑鼓古蠱骨穀股故顧固雇刮瓜剮寡掛褂乖拐怪棺關官冠觀管館罐慣灌貫咣廣逛瑰規圭矽歸龜閨軌鬼詭癸桂櫃跪圚劊輥滾棍鍋郭國果裹過囧骸駭海氦亥害駭酣憨邯韓含涵寒函喊罕翰撼捍旱憾悍焊汗漢夯杭航壕嚎豪毫郝恏耗號浩呵喝荷菏核禾囷何匼盒貉閡河涸赫褐鶴賀嘿嫼痕很狠恨哼亨橫衡恒轟哄烘虹鴻洪宏弘紅喉侯猴吼厚候後呼乎忽瑚壺葫胡蝴狐糊鍸弧虤唬護互滬戶婲嘩囮猾滑畫劃囮話槐徊懷淮壞歡環桓還緩換患喚瘓豢煥渙宦幻荒慌黃磺蝗簧瑝凰惶煌晃幌恍謊咴揮輝徽恢蛔囙毀悔慧卉惠晦賄穢茴燴彙諱誨繪葷昏婚魂渾混豁活夥吙獲戓惑霍貨禍擊圾基機畸稽積箕肌饑跡噭譏雞姬績緝吉極棘輯籍集及ゑ疾汲即嫉級擠幾脊己薊技冀季伎祭劑悸濟寄寂計記既忌際繼紀嘉枷夾佳镓加莢頰賈甲鉀假稼價架駕嫁殲監堅尖箋間煎兼肩艱奸緘繭檢柬堿鹼揀撿簡儉剪減薦檻鑒踐賤見鍵箭件健艦劍餞漸濺澗建僵薑將漿江疆蔣槳獎講匠醬降蕉椒礁焦膠交郊澆驕嬌嚼攪鉸矯僥腳狡角餃繳絞剿教酵轎較叫窖揭接皆秸街階截劫節莖聙晶鯨京驚精粳經囲警景頸靜境敬鏡徑痙靖竟競淨炯窘揪究糾玖韭久灸九酒廄救舊臼舅咎就疚鞠拘狙疽居駒菊局咀矩舉沮聚拒據巨具距踞鋸俱句懼炬劇捐鵑娟倦眷卷絹撅攫抉掘倔爵桔傑捷睫竭潔結解姐戒藉芥堺借介疥誡屆巾筋斤金紟津襟緊錦僅謹進靳晉禁近燼浸盡勁荊兢覺決訣絕均菌鈞軍君峻俊竣浚郡駿喀咖鉲咯開揩楷凱慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕顆科殼咳鈳渴克刻愙課肯啃墾懇坑吭涳恐孔控摳ロ扣寇枯哭窟苦酷庫褲誇垮挎跨胯塊筷儈快寬款匡筐狂框礦眶曠況虧盔巋窺葵奎魁傀饋愧潰坤昆捆困括擴廓闊垃拉喇蠟臘辣啦萊唻賴藍婪欄攔籃闌蘭瀾讕攬覽懶纜爛濫琅榔狼廊郎朗浪撈勞牢咾佬姥酪烙澇勒圞雷鐳蕾磊累儡壘擂肋類淚棱楞冷厘梨犁黎籬狸離漓悝李裏鯉禮莉荔吏栗麗厲勵礫曆利傈例俐痢竝粒瀝隸仂璃哩倆聯蓮連鐮廉憐漣簾斂臉鏈戀煉練糧涼梁粱良両輛量晾煷諒撩聊僚療燎寥遼潦叻撂鐐廖料列裂烮劣獵琳林磷霖臨鄰鱗淋凜賃吝拎玲菱零齡鈴伶羚淩靈陵嶺領另囹溜琉榴硫餾留劉瘤鋶柳六龖聾嚨籠窿隆壟攏隴嘍婁摟簍漏陋蘆盧顱廬爐擄鹵虜魯麓碌露蕗賂麤潞祿錄陸戮驢呂鋁侶旅履屢縷慮氯律率濾綠巒攣孿灤卵亂掠略掄輪倫侖淪綸論蘿螺羅邏鑼籮騾裸落洛駱絡媽麻瑪碼螞骉罵嘛嗎埋買麥賣邁脈瞞饅蠻滿蔓曼慢漫謾芒茫吂氓忙莽貓茅錨毛矛鉚卯茂冒帽貌貿仫玫枚梅酶黴煤莈眉媒鎂烸媄昧寐妹媚闁悶們萌蒙檬盟錳猛夢孟眯醚靡糜迷謎彌米秘覓泌蜜密冪棉眠綿冕免勉娩緬面苗描瞄藐秒渺廟妙蔑滅囻抿皿敏憫閩朙螟鳴銘名命謬摸摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌謀牟某拇牡畝姆毋墓暮幕募慕朩目睦牧穆拿哪呐鈉那娜納氖乃奶耐奈喃侽難囊撓腦惱鬧淖呢餒內嫩能妮霓倪苨胒擬伱匿膩逆溺蔫拈姩碾攆撚念娘釀茑尿捏聶孽齧鑷鎳涅您檸獰凝寧擰濘犇扭鈕紐膿濃農弄奴努怒囡暖虐瘧挪懦糯諾哦歐鷗毆藕嘔偶漚啪趴爬帕怕琶拍排牌徘湃派攀潘盤磐盼畔判叛乓龐旁耪胖拋咆刨炮袍跑泡呸胚培裴賠陪配佩沛噴盆砰抨烹澎彭蓬棚硼篷膨萠鵬捧碰坯砒霹批披劈琵毗啤脾疲皮匹痞僻屁譬篇偏爿騙飄漂瓢票撇瞥拼頻貧品聘乒坪蘋萍平憑瓶評屏坡潑頗嘙破魄迫粕剖撲鋪仆莆葡菩蒲埔樸圃普浦譜曝瀑期欺棲戚妻七淒漆柒沏其棋奇歧畦崎臍齊旗祈祁騎起豈乞企啟契砌器気迄棄汽泣訖掐洽牽扡釺鉛芉遷簽仟謙乾黔錢鉗前潛遣淺譴塹嵌欠歉槍嗆腔羌牆薔強搶橇鍬敲悄橋瞧喬僑巧鞘撬翹峭俏竅切茄且怯竊欽侵儭秦琴勤芹擒禽寢沁圊輕氫傾卿清擎晴氰情頃請慶瓊窮秋丘邱浗求囚酋泅趨區蛆曲軀屈驅渠取娶齲趣去圈顴權醛灥铨痊拳猋券勸缺炔瘸卻鵲榷確雀裙群然燃冉染瓤壤攘嚷讓饒擾繞惹熱壬仁囚忍韌任認刃妊紉扔仍ㄖ戎茸蓉榮融熔溶容絨冗揉柔禸茹蠕儒孺洳辱乳汝入褥軟阮蕊瑞銳閏潤若弱撒灑薩腮鰓塞賽三三傘散桑嗓喪搔騷掃嫂瑟銫澀森僧莎砂殺刹沙紗儍啥煞篩曬珊苫杉屾刪煽衫閃陝擅贍膳善汕扇繕墒傷商賞晌仩尚裳梢捎稍燒芍勺韶尐哨邵紹奢賒蛇舌舍赦攝射懾涉社設砷申呻伸身深娠紳神沈審嬸甚腎慎滲聲苼甥牲升繩渻盛剩勝聖師夨獅施濕詩屍虱┿石拾塒什喰蝕實識史矢使屎駛始式示壵卋柿倳拭誓逝勢昰嗜噬適仕侍釋飾氏市恃室視試收掱首垨壽授售受瘦獸蔬樞梳殊抒輸菽舒淑疏圕贖孰熟薯暑曙署蜀黍鼠屬術述樹束戍豎墅庶數漱恕刷耍摔衰甩帥栓拴霜雙爽誰沝睡稅吮瞬順舜詤碩朔爍斯撕嘶思私司絲迉肆寺嗣四伺似飼巳松聳慫頌送宋訟誦搜艘擻嗽蘇酥俗素速粟僳塑溯宿訴肅酸蒜算雖隋隨綏髓誶歲穗遂隧祟孫損筍蓑梭唆縮瑣索鎖所塌彵咜她塔獺撻蹋踏胎苔抬囼泰酞呔態汰坍攤貪癱灘壇檀痰潭譚談坦毯袒碳探歎炭湯塘搪堂棠膛唐糖倘躺淌趟燙掏濤滔絛萄桃逃淘陶討套特藤騰疼謄梯剔踢銻提題蹄啼體替嚏惕涕剃屜兲添填畾憇恬舔腆挑條迢眺跳貼鐵帖廳聽烴汀廷停亭庭挺艇通桐酮瞳哃銅彤童桶捅筒統痛偷投頭透凸禿突圖徒途塗屠汢吐兔湍團推穨腿蛻褪退吞屯臀拖托脫鴕陀馱駝橢妥拓唾挖哇蛙窪娃瓦襪歪外豌彎灣玩頑丸烷完碗挽晚皖惋宛婉萬腕汪迋亡枉網往旺望莣妄威巍微危韋違桅圍唯惟為濰維葦萎委偉偽尾緯未蔚菋畏胃喂魏位渭謂尉慰衛瘟溫蚊攵聞紋吻穩紊問嗡翁甕撾蝸渦窩莪斡臥握沃莁嗚鎢烏汙誣屋無蕪梧吾吳毋武五捂午舞伍侮塢戊霧晤粅勿務悟誤昔熙析覀硒矽晰嘻吸錫犧稀息希悉膝夕惜熄烯溪汐犀檄襲席習媳囍銑洗系隙戲細瞎蝦匣霞轄暇峽俠狹丅廈夏嚇掀鍁先仙鮮纖鹹賢銜舷閑涎弦嫌顯險哯獻縣腺餡羨憲陷限線相廂鑲馫箱襄湘鄉翔祥詳想響享項巷橡像姠潒蕭硝霄削哮囂銷消宵淆曉曉孝校肖嘯笑效楔些歇蠍鞋協挾攜邪斜脅諧寫械卸蟹懈泄瀉謝屑薪芯鋅欣辛噺忻惢信釁煋腥猩惺興刑型形邢荇醒圉杏性姓兄凶胸匈洶雄熊休修羞朽嗅鏽秀袖繡墟戌需虛噓須徐許蓄酗敘旭序畜恤絮婿緒續軒喧宣懸旋玄選癬眩絢靴薛學穴雪血勳熏循旬詢尋馴巡殉汛訓訊遜迅壓押鴉鴨吖丫芽牙蚜崖衙涯雅啞亜訝焉咽閹煙淹鹽嚴研蜒岩延訁顏閻燚沿奄掩眼衍演豔堰燕厭硯雁唁彥焰宴諺驗殃央鴦秧楊揚佯瘍羴洋陽氧仰癢養樣漾邀腰妖瑤搖堯遙窯謠姚咬舀藥偠耀椰噎耶爺野冶吔頁掖業旪曳腋夜液┅壹醫揖銥依伊衤頤夷遺移儀胰疑沂宜姨彝椅蟻倚巳乙矣鉯藝抑噫邑屹億役臆逸肄疫亦裔意毅憶図益溢詣議誼譯異翼翌繹茵蔭因殷喑陰姻吟銀淫寅飲尹引隱茚英櫻嬰鷹應纓瑩螢營熒蠅迎贏盈影穎硬映喲擁傭臃癰庸雍踴蛹詠泳湧詠恿勇鼡幽優悠憂尤由郵鈾猶油遊酉洧伖右佑釉誘又呦迂淤於盂榆虞愚輿餘俞逾鱻愉渝漁隅予娛雨與嶼禹宇語羽玊域芋鬱籲遇喻峪禦愈欲獄育譽浴寓裕預豫馭鴛淵冤え垣袁原援轅園員圓猿源緣遠苑願怨院曰約越躍鑰嶽粵仴悅閱耘雲鄖勻隕尣運蘊醞暈韻孕匝砸雜栽哉災宰載洅茬咱攢暫贊贓贓葬遭糟鑿藻棗早澡蚤躁噪造皂灶燥責擇則澤賊怎增憎曾贈紮喳渣劄軋鍘閘眨柵榨咋乍炸詐摘齋宅窄債寨瞻氈詹粘沾盞斬輾嶄展蘸棧占戰站湛綻樟嶂彰漳涨掌漲杖丈帳賬仗脹瘴障招昭找沼趙照罩兆肇召遮折哲蟄轍者鍺蔗這浙珍斟眞甄砧臻貞針偵枕疹診震振鎮陣蒸掙睜征猙爭怔整拯㊣政幀症鄭證芝枝支吱蜘知肢脂汁の織職直植殖執徝侄址指止趾呮旨紙志摯擲至致置幟峙制智秩稚質炙痔滯治窒ф盅忠鍾衷終種腫重仲眾舟周州洲謅粥軸肘帚咒皺宙晝驟珠株蛛朱豬諸誅逐竹燭煮拄矚囑主著柱助蛀貯鑄築住紸祝駐抓爪拽專磚轉撰賺篆樁莊裝妝撞壯狀椎錐縋贅墜綴諄准捉拙卓桌琢茁酌啄著灼濁茲咨資姿滋淄孜紫仔籽滓孓自漬芓鬃棕蹤宗綜總縱鄒赱奏揍租足卒族祖詛阻組鑽纂嘴醉朂罪尊遵昨咗佐柞做作唑座"; 4 static void Main(string[] args) 5 { 6 7 Hashtable ht = new Hashtable(); 8 for (int i = 0; i <Jian.Length; i++) 9 { 10 ht.Add(Jian[i], Fan[i]); 11 } 12 Console.WriteLine("请随便输入"); 13 string input = Console.ReadLine(); 14 for (int i = 0; i < input.Length; i++) 15 { 16 //如果键包含 17 if(ht.ContainsKey(input[i])) 18 { 19 Console.Write(ht[input[i]]); 20 } 21 //如果键不包含,输入什么就输出什么 22 else 23 { 24 Console.Write(input[i]); 25 } 26 } 27 28 //将用户输入的简体字 转换为繁体字 29 Console.ReadKey(); 30 }
11.File类的基本操作
File.Create();在指定路径新建文件
例:
File.Create(@"C:\Users\SJD\Desktop\小李子是个2B.txt");
File.Delete();删除指定路径的文件
例:
File.Delete(@"C:\Users\SJD\Desktop\小李子是个2B.txt");
File.Copy();复制一个路径的文件到另一个路径
例:
File.Copy(@"C:\Users\SJD\Desktop\小李子是个2B.txt", @"C:\Users\SJD\Desktop\1\new.txt");
1024byte=1kb
1024kb=1M
1024M=1G
1024G=1T
1024T=1PT
12.编码
美国人发明了计算机,他们日常生活中用的都是a~z,0~9
计算机中存数据都是二进制 如要存个a,可能就是以10001110存储
10001110就称为a在计算机中的编码
美国人最早,他们用的编码叫 ASC 128
后来欧洲国家也用计算机 他们除了a~z,0~9之外,音标上和美国人不一样。这点东西不够用了。
他们用的编码叫ASCII 256
全世界开始用计算机,中国也开始用。中国推出了编码GB2312 国标
后来 国标只包含简体字
台湾,香港,澳门用繁体字,五大硬件厂商自己做了编码 Big5 繁体字
美国人发现编码太多了,大家做一些事情的时候很麻烦。
出了一个统一的编码
unicode编码 囊括了每个国家都能使用的编码格式
这个编码很全,但是解析起来很慢
正好赶上互联网飞速发展
都用UTF-8 针对web的一个编码。
编码:将字符串以怎样的形式保存为二进制。
乱码:
产生乱码的原因:就是你保存这个文件所采用的编码,跟你打开这个文件所采用的编码格式不一样。
13.复习
里氏转换
1)子类可以赋值给父类
2)如果父类中装的是子类对象,那么将这个父类强制转换为子类对象
集合
1)ArrayList
添加单个元素 Add
添加一个集合 AddRange
移除 Remove
RemoveAt
RemoveRange
插入 Insert
插入集合 InsertRange
清空 Clear
反转 Reverse
排序 Sort
2)HashTable 怎样根据键去找值 ht[键]=值;
存储的类型都是object
Path 操作路径的
File
Create 创建
Delete 删除
Move 剪切
Copy 复制
读取数据 ReadAllBytes() 字节数组要转换成字符串 Encoding.Default.GetString(字节数组)
写入数据 WriteAllBytes() 字符串转换成字节数组 Encoding.Default.GetBytes(字符串)