什么是文件流:
字节流,把大文件分散成byte[ ]
使用文件流:
class Program { static void Main(string[] args) { //文件流的使用方式。 string msg = "张三"; //字符串转成byte数组。 byte[] bytes = System.Text.Encoding.UTF8.GetBytes(msg); //byte转成字符串 string newmsg = System.Text.Encoding.UTF8.GetString(bytes); Console.WriteLine(newmsg); } }
通过FileStream来读写文件。
class Program { static void Main(string[] args) { ////1、 创建文件流 //FileStream fsWrite = new FileStream("fist.txt", FileMode.Create); ////2、使用文件流,执行读写操作。 //string msg = "I am a colder."; //byte[] bytes = System.Text.Encoding.UTF8.GetBytes(msg); ////写 ////参数1:将指定字节数组写入文件 ////参数2:参数1的偏移量,一般为0 ////参数3:要写入的实际字节个数 //fsWrite.Write(bytes, 0, bytes.Length); ////3、清空缓冲区 执行上面的操作后 并没有真正的写入而是还在缓冲区(默认满了才写) //// 关闭文件流 //// 释放资源 可以只掉这个 它内部会调用上两个 //fsWrite.Flush(); //fsWrite.Close(); //fsWrite.Dispose(); //Console.WriteLine("finished!"); ////使用文件流时,可以将代码放到 ////using () ////{ ////} ////中 ,可以自动释放资源。 //读取文件 //1、创建文件流 using (FileStream fsRead = new FileStream("fist.txt", FileMode.Open)) {//不需指定编码,因为这是读取字节流,还没转成字符串 //根据文件的总字节数,创建byte数组,一次性读入 byte[] bytes1 = new byte[fsRead.Length]; //2、读取文件 fsRead.Read(bytes1, 0, bytes1.Length); string readmsg = System.Text.Encoding.UTF8.GetString(bytes1); Console.WriteLine(readmsg); } } }