using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace A05_IOFileStreamTec
{
class Demo7
{
private string _Path1 = @"Z:\Test.txt";
/// <summary>
/// 文件流的写入
/// </summary>
public void Test1()
{
//定义文件流
FileStream fs = new FileStream(_Path1,FileMode.OpenOrCreate);
//写入的内容
string strWord = "Hello world";
//字符串转byte数组
byte[] bytArray = Encoding.UTF8.GetBytes(strWord);
//写入
fs.Write(bytArray, 0, bytArray.Length);
//关闭文件流
fs.Close();
}
/// <summary>
/// 文件流的读取,用原始的try catch来防止崩溃
/// </summary>
public void Test2()
{
FileStream fs = null;
try
{
//定义文件流
fs = new FileStream(_Path1, FileMode.Open);
//开辟内存区域
byte[] byArray = new byte[1024 * 1024];
//开始读取数据
int intCount = fs.Read(byArray, 0, byArray.Length);
//byte数组转字符串
string strDisplayContent = Encoding.UTF8.GetString(byArray, 0, intCount);
//关闭文件流
fs.Close();
//显示文件内容
Console.WriteLine(strDisplayContent);
}
catch (Exception)
{
}
finally
{
if (fs != null)
{
fs.Close();//无论正常与否,都要关闭数据流
}
}
}
/// <summary>
/// 文件流的读取,用using关键字来替代try catch。
/// 使用 using 可以自动释放资源。using()参数中填入的类型必须实现IDisposable借口
/// </summary>
public void Test3()
{
if (File.Exists(_Path1))
{
using (FileStream fs = new FileStream(_Path1, FileMode.Open))
{
//开辟内存区域
byte[] byArray = new byte[1024 * 1024];
//开始读取数据
int intCount = fs.Read(byArray, 0, byArray.Length);
//byte数组转字符串
string strDisplayContent = Encoding.UTF8.GetString(byArray, 0, intCount);
//关闭文件流
fs.Close();
//显示文件内容
Console.WriteLine(strDisplayContent);
}
}
}
static void Main1(string[] args)
{
Demo7 obj = new Demo7();
obj.Test3();
}
}
}