小结文件读写操作(记得引入 system.IO 和 system.Text 哦)
1、使用FileStream类创建文件,讲数据写入文件---fileWriter1()
2、使用filestream类创建文件,使用streamwriter写入文件---fileWriter2()
3、使用filestream类进行文件的读取,并将它转换成char数组,然后输出---fileReader1()
4、使用StreamReader读取文件,然后一行一行的输出---fileReader2()
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Text;
using System.IO;
namespaceConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//分别取消下面的注释可以试一试哦
//fileWriter1();
//fileWriter2();
//fileReader1();
//fileReader2();
Console.ReadLine();
}
#region 创建文件,写入数据
/// <summary>
/// 使用FileStream类创建文件,讲数据写入文件
/// </summary>
public void fileWriter1()
{
FileStream fs = newFileStream("D:\\temp1.txt", FileMode.Create);
Byte[] data =System.Text.Encoding.Default.GetBytes("hello,world!");
fs.Write(data, 0, data.Length);
//清空缓冲区内容
fs.Flush();
//关闭流
fs.Close();
}
/// <summary>
/// 使用filestream类创建文件,使用streamwriter写入文件
/// </summary>
public static void fileWriter2()
{
FileStream fs = newFileStream("D:\\temp2.txt", FileMode.Create);
StreamWriter sw = newStreamWriter(fs);
sw.WriteLine("hello,world!");
//清空缓冲区内容
sw.Flush();
//关闭流
sw.Close();
fs.Close();
}
#endregion
#region 从文件读取数据
/// <summary>
/// 使用filestream类进行文件的读取,并将它转换成char数组,然后输出
/// </summary>
public static void fileReader1()
{
//定义byte/char数组
Byte[] byData = new Byte[100];
Char[] charData = new Char[1000];
//使用try/catch
try
{
//创建文件流(打开文件)
FileStream fs = newFileStream("D:\\temp.txt", FileMode.Open);
//查找文件内容
fs.Seek(0, SeekOrigin.Begin);
//读取文件内容
fs.Read(byData, 0,byData.Length);
//初始化Decoder
Decoder d =Encoding.Default.GetDecoder();
//将读取出的内容从byte-->char
d.GetChars(byData, 0,byData.Length, charData, 0);
//打印内容
Console.WriteLine(charData);
//关闭文件流
fs.Close();
}
catch (IOException ex)
{
Console.WriteLine(ex.ToString());
}
}
/// <summary>
/// 使用StreamReader读取文件,然后一行一行的输出
/// </summary>
public static void fileReader2()
{
//创建StreamReader
StreamReader sr = newStreamReader("D:\\temp2.txt", Encoding.Default);
//创建变量line
string line;
//while判断,不为空时一行一行打印
while ((line = sr.ReadLine()) !=null)
{
Console.WriteLine(line);
}
#endregion
}
}
}