代码:
/****************************
*
* 文件流技术
* 1:文件流的写入
* 2:文件流的读取
* 3:Using捕获异常的用法
*
* ******************************/
using System;
using System.IO;
using System.Text;
namespace 文件流技术
{
class Demo1
{
private string _Path1 = @"E:\TeacherLiuSutdy\Hight Level Teach\Test1.txt";
/// <summary>
/// 文件流的写入
/// </summary>
public void Test1()
{
//定义文件流
FileStream fs = new FileStream(_Path1,FileMode.OpenOrCreate);
//写入的内容
string strWord = "同学们,上午好!";
//字符串转byte数组
byte[] byteArray = Encoding.UTF8.GetBytes(strWord);
//写入
fs.Write(byteArray,0,byteArray.Length);
//关闭文件流
fs.Close();
//清理资源
//fs.Dispose();
}
/// <summary>
/// 文件流的读取
/// </summary>
public void Test2()
{
FileStream fs = null;
try
{
//定义文件流
fs = new FileStream(_Path1, FileMode.Open);
//开辟内存区域
byte[] byArray = new byte[1024 * 1024];//1M空间
//开始读取数据
int intCount = fs.Read(byArray, 0, byArray.Length);
//byte数组转字符串
string strDisplayCount = Encoding.UTF8.GetString(byArray, 0, intCount);
//关闭文件流
fs.Close();
//显示文件内容
Console.WriteLine(strDisplayCount);
}
catch (Exception)
{
throw;
}
finally
{
if (fs!=null)
{
fs.Close();
}
}
}
/// <summary>
/// 使用Using捕获异常
/// 注意:使用Using的地方,括号内部的类必须实现IDisposable接口(如FileStream)
/// </summary>
public void Test3()
{
if (File.Exists(_Path1))
{
//定义文件流,可自动释放资源,比Try Catch用法简单
using (FileStream fs = new FileStream(_Path1, FileMode.Open))
{
//开辟内存区域
byte[] byArray = new byte[1024 * 1024];//1M空间
//开始读取数据
int intCount = fs.Read(byArray, 0, byArray.Length);
//byte数组转字符串
string strDisplayCount = Encoding.UTF8.GetString(byArray, 0, intCount);
//显示文件内容
Console.WriteLine(strDisplayCount);
}
}
}
static void Main(string[] args)
{
Demo1 obj = new Demo1();
//obj.Test1();
//obj.Test2();
obj.Test3();
Console.ReadKey();
}
}
}