// FileStream//(操作字节的)水一勺一勺的 可以操作任意格式的文件
//File一下子就读出来
//读取文本文件
1 // FileMode.OpenOrCreate你针对文件进行一个什么操作 2 //FileAccess .Read 文件数据参数 3 //1.创建FileStream对象 4 FileStream fileRead = new FileStream(@"C:\Users\wbrm\Desktop\新建文本文档.txt", FileMode.OpenOrCreate, FileAccess.Read); 5 byte[] buffer = new byte[1024 * 1024 * 5]; 6 int r = fileRead.Read(buffer, 0, buffer.Length); // 0表示从那个字节读取数据 // buffer.Length 读取的大小 7 //将字节数组中的每一个元素安照知道的编码格式解码成字符串 8 string s = Encoding.Default.GetString(buffer, 0, r); 9 fileRead.Close(); // //关闭流 10 fileRead.Dispose(); // //释放流所占用的资源 11 Console.WriteLine(s); 12 Console.ReadKey();
写入文本文件
1 //写入的编码格式和读的编码格式必须一样 2 //将创建的文件流对象的过程在Using当中,会自动的帮助我们释放所占用的空间 3 using (FileStream fswrite = new FileStream(@"C:\Users\wbrm\Desktop\新建文本文档 (2).txt", FileMode.OpenOrCreate, FileAccess.Write)) 4 { 5 string str = "看我有没有把你覆盖掉"; 6 byte[] buffer = Encoding.Default.GetBytes(str);//转换成字节数组 7 fswrite.Write(buffer, 0, buffer.Length); 8 } 9 Console.WriteLine("写入成功"); 10 Console.ReadKey();
使用文件流实现多媒体文件文件的复制
1 static void Main(string[] args) 2 { 3 //思路:先将要复制的多媒体文件读取出来然后在再写到你的指定位置 4 string courece = @"C:\Users\wbrm\Desktop\for循环的练习.avi"; 5 string target = @"C:\Users\wbrm\Desktop\新的.avi"; 6 CopyFile(courece, target); 7 Console.WriteLine("复制成功"); 8 Console.ReadKey(); 9 } 10 public static void CopyFile(string courece, string target) 11 { 12 //读取流 13 using (FileStream fsRead = new FileStream(courece, FileMode.OpenOrCreate, FileAccess.Read)) 14 { 15 //写入流 16 using (FileStream fsWrite = new FileStream(target, FileMode.OpenOrCreate, FileAccess.Write)) 17 { 18 byte[] buffer = new byte[1024 * 1024 * 5]; 19 //因为文件可能会比较大,所以我们在读取的时候,应该通过一个循环去读取 20 while (true) 21 { 22 //返回本次读取实际读取的字节数 23 int r = fsRead.Read(buffer, 0, buffer.Length); 24 //如果返回一个0,也就意味什么都没有读取到,读取完了 25 if(r==0) 26 { 27 break; 28 } 29 fsWrite.Write(buffer, 0,r);//最多写入的字节r 30 } 31 } 32 } 33 }