作者:云都小生
概述
I/O操作的方法一般都定义在System.IO命名空间中,这些方法可以用于创建、删除、文件读取/写入等文件操作。在操作的过程中,都是通过“流”。
流可以理解成管道,连接着你要操作的那些文件,数据一般以二进制的形式通过流进行传递。
FileStream
这个类为文件操作提供了一个流,可以用来轻松的读写数据到文件中。它是以单字节进行读写操作。
来看个例子:
FileStream file = new FileStream(@"C:\Users\cloud\Desktop\test.txt",FileMode.OpenOrCreate);
file.Close();
通过FileStream类的构造方法,我们指定了需要操作的文件(如果不包含路径,只写文件名,就表示跟该可执行文件在同个目录下),同时指定了操作的方式。
还有一点很重要,指定了FileMode.OpenOrCreate,有两种情况,第一种,这个文件是存在了的,第二种,这个文件不存在。如果存在,就只是简单的“连接”,如果不存在,就会创建这个文件。
一切流如果打开了,就要保持好Close()的习惯。
我们可以通过WirteByte()的方法来为该文件写入数据,通过ReadByte()的方法,来读取该文件的字节型数据。
file.WriteByte(58);
while ((i = file.ReadByte()) != -1)
{
Console.Write((char)i);
}
当ReadByte()读取到最后一个字节之后,再读取就会返回-1,表示读到结尾了。
StreamReader & StreamWrite
这两个方法可以以字符串为单位来读写文件。
StreamReader reader = new StreamReader("test.txt",false);
false的参数名叫apped,false表示如果文件存在,则直接覆盖数据,true表示如果文件存在,则在最后面增加数据。
还可以这样···
FileStream file = new FileStream(@"C:\Users\cloud\Desktop\test.txt",FileMode.OpenOrCreate);
StreamReader reader = new StreamReader(file);
reader.Close();
file.Close();
这有点像是,一个小管道,加上了一个大的管道。在关闭流的时候,要先关闭StreamReader,再关闭FileStream。
StreamReader常用的两种读数据的方法,分别是Read()以及ReadLine(),前者是读取一个字符,后者是读取一行。
StreamWrite常用的两种写数据的方法,分别是Write()和WriteLine(),前者写入数据后不会换行,后者写入后会自动换行。
FileStream file = new FileStream(@"C:\Users\cloud\Desktop\test.txt",FileMode.OpenOrCreate);
StreamReader reader = new StreamReader(file);
Console.WriteLine(reader.Read());
//Console.WriteLine(reader.ReadLine());
reader.Close();
file.Close();
再来看看Write()和WriteLine()
FileStream file = new FileStream(@"C:\Users\cloud\Desktop\test.txt",FileMode.OpenOrCreate);
StreamWrite wirter = new StreamWrite(file);
wirter.Write("云都小生");
//wirter.WriteLine("云都小生 不'止'是一个程序员");
writer.Close();
file.Close();
2018/1/18 0:29:34 @Author:云都小生