文件的读写-文件流读写
基于"文件流"的技术,可以优化效率,占用内存小等优点,目前文件的大数据量读写,基本上都是采用“文件流”的方式。
“文件流”读取技术
FileStream fs;
fs.Read();
"文件流"写入技术:
FileStream fs;
fs.Write();
定义了文件流之后,相当于磁盘和磁盘之间,目录和目录之间有了一个管道。
文件流使用完之后一定要关闭,否则会消耗计算机的内存。
使用Using机制
1.操作硬盘,就需要使用try ...catch
2.为了简化try...catch机制,使用Using
3.凡是使用Using()自动释放资源的地方,必须实现IDisposable接口
源代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace chaper9文件流读写技术
{
class Program
{
private string _path = @"E1:\任向飞\CSharp\c#进阶刘国柱\IO序列化\chaper9文件流读写技术\bin\Debug\Test.txt";
/// <summary>
/// 文件流的写入
/// </summary>
public void Test1()
{
//定义文件流
FileStream fs = new FileStream(_path, FileMode.OpenOrCreate);
//写入的内容
string strWord = "你好";
//字符串转数组
byte[] byteArray = Encoding.UTF8.GetBytes(strWord);
fs.Write(byteArray, 0, byteArray.Length);
//一定要关闭文件流,close()内部调用的是Dispose
fs.Close();
//清理资源,close()包含了文件流
// fs.Dispose();
}
/// <summary>
/// 文件的读写
/// </summary>
public void Test2()
{
FileStream fs = null;
try
{
//定义文件流
fs = new FileStream(_path, FileMode.Open);
//开辟内存区域,1024K空间=1M,如果数据量大可以定义的大一点比如10M
byte[] byteArray = new byte[1024 * 1024];
//开始读取数据
int count = fs.Read(byteArray, 0, byteArray.Length);
//byte数组转字符串
string str = Encoding.UTF8.GetString(byteArray, 0, count);
//关闭文件流,释放资源,释放内存
fs.Close();
//显示数据
Console.WriteLine(str);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
if (fs != null)
{
fs.Close();
}
}
}
static void Main(string[] args)
{
Program obj = new Program();
obj.Test2();
Console.ReadKey();
}
}
}