
将创建文件流对象的过程写在using当中,会自动的帮助我们释放流所占用的资源。
using System;using System.IO;using System.Text;namespace _078_使用FileStream来读写文件{class Program{static void Main(string[] args){//FileStream 操作字节的// 文件路径 对文件进行什么操作 对文件中的数据进行什么操作//使用FileStream读取数据FileStream fsRead = new FileStream(@"C:\Users\46124\Desktop\CSharpTestOne.txt", FileMode.OpenOrCreate, FileAccess.Read);byte[] buffer = new byte[1024 * 1024 * 5];//.Read(byte[] array, int offset, int count) 返回int类型//offset:array中的字节偏移量,将在此处开始读取字节//count :最多读取的字节数//返回结果:读入缓冲区中的总字节数(int)int r = fsRead.Read(buffer, 0, buffer.Length);Console.WriteLine(r);//将字节数组中的每一个元素按照指定的编码格式解码成字符串// string s = Encoding.Default.GetString(buffer); 这样在打印时会用很多空,所以只要解码(buffer,0,r)即可(从buffer[0]->buffer[r])string s = Encoding.Default.GetString(buffer, 0, r);Console.WriteLine(s);//关闭流fsRead.Close();//释放流所占用的资源fsRead.Dispose();//使用FileStream写入数据using (FileStream fsWrite=new FileStream(@"C:\Users\46124\Desktop\CSharpTestOne.txt",FileMode.OpenOrCreate,FileAccess.Write)){string str = "这是我用程序写入的数据";byte[] buffer1 = Encoding.Default.GetBytes(str);fsWrite.Write(buffer1, 0, buffer1.Length);}Console.WriteLine("写入成功");//StreamReader、StreamWriter 操作字符的Console.ReadKey();}}}
使用FileStream实现多媒体文件的复制
using System;using System.IO;namespace _079_使用FileStream实现多媒体文件的复制{class Program{static void Main(string[] args){//思路:就是先将复制的多媒体文件读取出来,然后再写入到指定的位置string source = @"C:\Users\46124\Desktop\Create one's own\Video\牌子击打声.mp4";string target = @"C:\Users\46124\Desktop\CSharpTestTwo.mp4";CopyFile(source, target);Console.WriteLine("复制粘贴成功");Console.ReadKey();}public static void CopyFile(string source, string target){//1、创建一个读取的流using (FileStream fsRead = new FileStream(source, FileMode.OpenOrCreate, FileAccess.Read)){//2、创建一个写入的流using (FileStream fsWrite = new FileStream(target, FileMode.OpenOrCreate, FileAccess.Write)){byte[] buffer = new byte[1024 * 1024 * 5];//因为文件可能比较大,所以我们在读取的时候,应通过一个循环去读取while (true){//返回这次实际读取到的字节数int r = fsRead.Read(buffer, 0, buffer.Length);//可能存在文件指针,有记忆功能,所以并不是一直读取(0,buffer.Length)Console.WriteLine(r);if (r == 0){break;}fsWrite.Write(buffer, 0, r);//可能存在文件指针,有记忆功能,所以并没有覆盖}}}}}}

080_StreamReader和StreamWriter
using System;using System.IO;using System.Text;namespace _80_StreamReader和StreamWriter{class Program{static void Main(string[] args){//使用StreamReader来读取一个文本文件using (StreamReader sr = new StreamReader(@"C:\Users\46124\Desktop\CSharpTestOne.txt", Encoding.Default)){while (!sr.EndOfStream){Console.WriteLine(sr.ReadLine());}//Console.WriteLine(sr.ReadToEnd());}//使用StreamWriter来写入一个文本文件 true:追加数据 false:如果文件不存在则新建,存在即覆盖using (StreamWriter sw = new StreamWriter(@"C:\Users\46124\Desktop\CSharpTestThree.txt", true)){sw.Write("使用StreamWriter写入的文本!!");}Console.WriteLine("写入成功");Console.ReadKey();}}}
