A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邓艳秋 中级黑马   /  2012-11-17 16:39  /  1944 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1,文件流执行大文件拷贝。-FileCopy("源路径","目标路径")。需要创建二个文件流。一个读源文件,一个写入目标文件。
1.1创建一个读取文件的文件流FileStream fsRead=new FileStream("源路径",FileMode.Open);
1.2再创建一个写入文件的文件流FileStream fsWrite=new FileStream("目标路径",FileMode.Create);---二者一起执行的时候就是通过fsRead读取源文件,然后再通过fsWrite将读取的数据写入新文件。
1.3创建一个缓冲区。byte[]byts=new byte[1024*1024*5];
1.3.1通过循环不断的读取源文件,并且写入新文件int count=fsRead.Read(byts,0,byts.Length);
while(count>0)
{
1.3.2将刚才读取到的数据byte[]写入到新文件流中。fsWrite.Write(byts,0,count);
count=fsRead.Read(byts,0,btys.Length);
}
FileStream的Position属性就是文件流的当前位置。
*byte[]是任何数据的最根本表示形式,任何数据最终都是二进制
*2.文件加密。--反转文件流中的字节
3.判断文件的编码。
3.1只要文本文件存储时,采用的是unicode编码时,前二位一定是255,254.
3.2当文件的编码为utf-8时,前三个字节的编码是一样的。前面带?的问题,可能是前几个字节为文件的bom头。
4.通过StreamReader读取文件。StreamReader reader=new StreamReader("源文件",Encoding.GetEncoding("GBK");
4.1 while(!reader.EndOfStream)
{
Console.WriteLine(reader.ReadLine());
}

5.通过SteamWriter写入文件。StreamWriter writer=new  StreamWriter("要写入的文件",true,Encoding.GetEncoding("GBK"))
true:表示是否需要追加

补充:
StreamReader和StreamWriter的优越性。


6.*对象的序列化。--xml序列化-把对象变成一个xml文件的形式。
XmlSerializer xml=new XmlSerializer(typeof())
JavaScrpript序列化,就是把一个对象变成json格式的字符串。
------------------------------待补充-------------
二进制序列化:就是把对象变成一个byte[],然后就可以将该对象进行保存或传输。
Person p1=new Person();
步骤:(注意,一般序列化的时候不建议使用自动属性)
1.创建一个二进制序列化器-BinaryFormatter bf=new BinaryFormatter();
1.1创建一个文件流---用来存放序列化了之后的文件。
FileStream fs=File.OpenWrite("person.yzk");
2.开始序列化。bf.Serialize(fs,p1);---表示把P1对象序列化到fs文件流中。
[Serializable]----当某个类型标记时,就可以被序列化。[SerializableAttribute]
二进制序列化的需要:1,需要加标记[Serializable]2,被序列化的类型中的所有的字段的类型也得标记为可序列化的。3,被序列化的类型的所有父类都必须标记可序列化。
---这里的序列化只序列化字段,不针对方法。
3.反序列化。--反序列化的时候需要:一个程序集,这个程序集应该是被序列化对象的所在的程序集。为什么需要这个程序集?因为反序列化的时候要创建一个新的对象,该对象是原来对象的类型,创建对象就需要原来的类型,而原来的类型在程序集中,创建好对象后,根据person.yzk文件中的字段信息,进行赋值。
4.正则表达式。---操作对象:文本,字符串。
4.1第一个元字符".":可以匹配出除了\n之外的任何单个字符。
4.2"[]"表示[]中任意取一个字符。\-在[]中表示-
^只有在[]中用才表示非。
4.3"|"表示或。这个或的优先级比[]低。所以用到|就用小括号括起来提高优先级。比如z|food--表示z或者是food.
4.4"()"小括号的一个作用是改变优先级,另外一个作用就是“提取组”。
---------------限定符
4.5"*"表示*前面的表达式出现0次或者是多次。
4.6"+"表示至少出现一次。(可以出现1次或多次。)
4.7"?"表示可以出现0次,或者1次。【终结贪婪模式】
4.8"{n}"出现固定的次数。"{n,}"--此语句表示至少出现n次,不限最多次。","后面可以带参数表示最多出现的次数。
4.9"^"表示字符串的开头.
4.10"$"表示字符串的结尾。

2 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
学习一下,感谢分享!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马