FielStream类用来操作大文件以字节方式操作提供了读和写,而StreamReader和StreamWrite类用来操作大的文本文件,以字符的方式进行读和写,与File操作类中以字符的方式读取数据的区别是,StreamReader和StreamWrite可以对大文件循环读取,以减小内存压力,我们需要手动的关闭和释放资源
1、StreamReader:用来读取文本文件中的数据源代码中我们常用的方法有
StreamReader常用的构造函数;
public StreamReader(string path);
public StreamReader(string path, Encoding encoding);
StreamReader常用的属性和方法
public bool EndOfStream { get; }
获取一个值,该值表示当前的流位置是否在流的末尾。
如果当前流位置位于流的末尾,则为 true;否则为 false。
public override string ReadLine();
从当前流中读取一行字符并将数据作为字符串返回。
返回结果:输入流中的下一行;如果到达了输入流的末尾,则为 null。
StreamReader一行一行的读取文件事例:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StreamReaderAndStreamWrite
{
class Program
{
static void Main(string[] args)
{
string path = @"C:\Users\fighting man\Desktop\StreamReader\StreamReader的测试.txt";
using (StreamReader sr = new StreamReader(path, Encoding.Default))
{
while (!sr.EndOfStream)
{
Console.WriteLine(sr.ReadLine());
}
}
Console.ReadKey();
}
}
}
运行结果
2、StreamWriter类常用的写入方法
StreamWriter的构造函数:
public StreamWriter(string path);
public StreamWriter(string path, bool append);//是否追加
public StreamWriter(string path, bool append, Encoding encoding);
StreamReader常用属性和方法;
public override Encoding Encoding { get; }
public override void Write(char value);
public override void Write(char[] buffer);
public override void Write(string value);
public override void Write(char[] buffer, int index, int count);
StreamWriter的使用事例:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StreamWriter使用
{
class Program
{
static void Main(string[] args)
{
//用StreamWriter写入一个文本文件
string path = @"C:\Users\fighting man\Desktop\StreamReader\StreamWriter的测试.txt";
using (StreamWriter sw = new StreamWriter(path,false, Encoding.Default))
{
sw.Write("艾弗森无敌");
}
}
}
}