本文实例讲述了.NET中的IO操作之文件流用法。分享给大家供大家参考。具体分析如下:
读操作
复制代码 代码如下://1.创建文件流
FileStream fsRead =new FileStream("1.txt",FileMode.Open);
//2.创建缓冲区,正常情况下,是不会直接等于文件大小的。这里只有读,所以就这么干了。
byte[] bytes =new byte[fsRead.Length];
//3.开始读取, 返回值是读取到的长度。
int r =fsRead.Read(bytes,0,bytes.Lenght);
//4.关闭释放流
fsRead.Close();
fsRead.Dispose();
写操作
复制代码 代码如下://1.创建写入的文件流
FileStream fsWrite fsWrite =new FileStream(@"xxx",FileMode.OpenOrCreate);
//2.创建缓冲区
String msg ="HelloWorld";
byte[] bytes =Enconding.UTF8.GetBytes(msg);
//3.开始写入
fsWrite.Write(bytes,0,bytes.Length);
//4.关闭
fsWrite.Close();
fsWrite.Dispose();
byte数组与string之间的转换
在文件流写入的时候,经常需要string 和 byte数组之间的转换。
这里简单的描述一下,这方面的做法。
1.string 到 byte[]数组。
复制代码 代码如下:string msg ="HelloWorld";
//使用UTF8编码
byte[] bytes =System.Text.Encoding.UTF8.GetByte(msg);
//使用系统默认编码
byte[] bytes =System.Text.Encoding.Default.GetByte(msg);
2.byte[]到string
复制代码 代码如下:string newMsg =System.Text.Encoding.UTF8.GetString(bytes);
编码问题
为什么中文会乱码?
UTF8 编码中,一个中文字符占用两个字节。
GBK 编码中,一个中文字符占用三个字节。
UTF8 编码中,用两个字节保存一个汉字,如果你用GBK读取,按照三个字节一个字的格式去读。当然乱码了。反之也是一样的。
总结起来,无论是36码的鞋子,穿在50码的脚丫子上。还是36码的脚丫子,穿50码的鞋。看起来都不会很舒服。
所以,按照什么格式写入,就按照什么格式读取。才是正解。
PS:
1.Utf8是国际标准。
2.GB2312 是国标编码,支持中文的。
3.GBK是对GB2312的扩展,支持繁体中文。
什么类可以Dispose( )"codetitle">复制代码 代码如下://只有把fs定义在这里,finally中才能引用得到。
FileStream fs =null;
try
{
fs =new FileStream(@"文件路径",FileMode.Create);
byte[] bytes = Encoding.Default.GetBytes("HelloWorld");
fs.Write(bytes,0,byte.Length);
}
finally
{
if(fs != null) //如果fs未赋值,那么直接Dispose就会引发空指针异常。
{
fs.Dispose();
}
}
简化上述的写法,虽然严谨但是稍微有点麻烦。Microsoft提供了语法糖。
就是using的语法
复制代码 代码如下:using(某个可以释放资源的类)
{
操作
}
//1.操作执行完,会自动释放。
//2.using语句编译完成以后,会形成跟上面类似的代码。就是使用try finally。
StreamWriter和StreamReader
复制代码 代码如下://按行写入
StreamWriter sw =new StreamWriter(@"target",true,Encoding.GetEnconding("GB2312"));
sw.WriteLine("HelloWorld");
//按行读取
StreamReader sr =new StreamReader(@"Source");
sr.ReaderLine(); //每次返回一个字符串
希望本文所述对大家的.net程序设计有所帮助。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 柏菲·珞叔作品集《金色大厅2》限量开盘母带ORMCD[低速原抓WAV+CUE]
- Gareth.T《sad songs(Explicit)》[320K/MP3][29.03MB]
- Gareth.T《sad songs(Explicit)》[FLAC/分轨][152.85MB]
- 证声音乐图书馆《海风摇曳·盛夏爵士曲》[320K/MP3][63.06MB]
- 龚玥《金装龚玥HQCD》头版限量[WAV分轨]
- 李小春《吻别》萨克斯演奏经典[原抓WAV+CUE]
- 齐秦《辉煌30年24K珍藏版》2CD[WAV+CUE]
- 证声音乐图书馆《海风摇曳·盛夏爵士曲》[FLAC/分轨][321.47MB]
- 群星 《世界经典汽车音乐》 [WAV分轨][1G]
- 冷漠.2011 《冷漠的爱DSD》[WAV+CUE][1.2G]
- 陈明《流金岁月精逊【中唱】【WAV+CUE】
- 群星《Jazz-Ladies1-2爵士女伶1-2》HQCD/2CD[原抓WAV+CUE]
- 群星《美女私房歌》(黑胶)[WAV分轨]
- 郑源.2009《试音天碟》24BIT-96KHZ[WAV+CUE][1.2G]
- 飞利浦试音碟 《环球群星监听录》SACD香港版[WAV+CUE][1.1G]