首先我们来看一下流的基本体系框架。
StreamReader
常用方法汇总:
- Close():关闭流
- Peek():获取流的下一个字符的整数,如果没有获取到字符,返回-1。
- Read():获取流的下一个字符的整数
- Read(char[] char,int start,int length):从指定位置开始读取字符到缓冲区
- ReadLine():从当前流中读取一行字符并将数据作为字符串返回。
- ReadToEnd():读取来自流的当前位置到结尾的所有字符。
实例:读取文件信息
class Program
{
static void Main(string[] args)
{
//定义路径
string path = @"E:\\test\\test.txt";
//创建 StreamReader 类的实例
StreamReader streamReader = new StreamReader(path);
//判断文件里是否有字符
while (streamReader.Peek() != -1)
{
//读取文件中的一行字符
string str = streamReader.ReadLine();
Console.WriteLine(str);
}
streamReader.Close();
}
}
运行结果:
StreamWrite
常用方法汇总:
- Close():关闭流。
- Flush():刷新缓冲区。
- Write(char c):将字符写入流中。
- Write Line(char c):将字符换行写入流中。
实例:写文件并读取内容
class Program
{
static void Main(string[] args)
{
string path = @"E:\\test\\test.txt";
//创建StreamWriter 类的实例
StreamWriter streamWriter = new StreamWriter(path);
//向文件中写入姓名
streamWriter.WriteLine("hjw");
//向文件中写入手机号
streamWriter.WriteLine("13112345678");
//刷新缓存
streamWriter.Flush();
//关闭流
streamWriter.Close();
//创建StreanReader类的实例
StreamReader streamReader = new StreamReader(path);
while (streamReader.Peek() != -1)
{
Console.WriteLine(streamReader.ReadLine());
}
streamReader.Close();
}
}
运行结果:
FileStream
实例:写文件并读取内容
class Program
{
static void Main(string[] args)
{
string path = @"E:\\test\\test123.txt";
//判断是否含有指定文件
if (File.Exists(path))
{
//创建FileStream的实例
FileStream fileStream1 = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
string msg = "Hello World!!!";
byte[] writebytes = Encoding.UTF8.GetBytes(msg);
//向文件中写入字节数组
fileStream1.Write(writebytes, 0, writebytes.Length);
//刷新缓存区
fileStream1.Flush();
fileStream1.Close();
FileStream fileStream2 = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
byte[] readbytes = new byte[fileStream2.Length];
fileStream2.Read(readbytes, 0, readbytes.Length);
char[] c = Encoding.UTF8.GetChars(readbytes);
Console.WriteLine("文件信息为:");
Console.WriteLine(c);
fileStream2.Close();
}
else
{
Console.WriteLine("您查看的文件不存在!");
}
}
}
BinaryReader
实例:使用 BinaryReader 类读取记事本文件中的信息。
class Program
{
static void Main(string[] args)
{
string path = @"E:\\test\\test123.txt";
//创建FileStream的实例
FileStream fileStream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
BinaryReader binaryReader = new BinaryReader(fileStream);
//int a = binaryReader.Read();
判断 文件中是否含有字符
//while (a != -1)
//{
// //输出读取到的字符
// Console.Write((char)a);
// a = binaryReader.Read();
//}
//获取文件长度
long length = fileStream.Length;
byte[] bytes = new byte[length];
//读取文件中的内容并保存到字节数组中
binaryReader.Read(bytes, 0, bytes.Length);
//将字节数组转换为字符串
string str = Encoding.Default.GetString(bytes);
Console.WriteLine(str);
}
}
运行结果: