FileStream文件流
FileStream:
/*FileStream fs = new FileStream(@"C:\Users\杰殇\Desktop\C#记录\new.docx", FileMode.OpenOrCreate, FileAccess.Read);
//要操作文件的路径 要针对文件做得操作 针对文件里数据做得操作
byte[] buffer = new byte[1024 * 1024 * 5];//限定要操作的字节数组大小
int r=fs.Read(buffer, 0, buffer.Length);//返回本次实际读取到的有效字节数
string s=Encoding.Default.GetString(buffer,0,r);//将字节数组中每一个元素按照指定的编码格式解码成字符串,从0解码到r
fs.Close();//关闭流
fs.Dispose();//释放流所占资源
Console.WriteLine(s);
Console.ReadKey();*/
using (FileStream fileStream = new FileStream(@"C:\Users\杰殇\Desktop\C#记录\new.docx", FileMode.OpenOrCreate, FileAccess.Write));
{
string str = "哈哈哈哈";
byte[] buffer = Encoding.Default.GetBytes(str);
fileStream.Write(buffer, 0, buffer.Length);
}
1 using System; 2 using System.Collections.Generic; 3 using System.IO; 4 using System.Linq; 5 using System.Text; 6 using System.Threading.Tasks; 7 8 namespace _06文件流 9 { 10 class Program 11 { 12 static void Main(string[] args) 13 { 14 15 //使用FileStream来读取数据 16 FileStream fsRead = new FileStream(@"C:\Users\SpringRain\Desktop\new.txt", FileMode.OpenOrCreate, FileAccess.Read); 17 byte[] buffer = new byte[1024 * 1024 * 5]; 18 //3.8M 5M 19 //返回本次实际读取到的有效字节数 20 int r = fsRead.Read(buffer, 0, buffer.Length); 21 //将字节数组中每一个元素按照指定的编码格式解码成字符串 22 string s = Encoding.UTF8.GetString(buffer, 0, r); 23 //关闭流 24 fsRead.Close(); 25 //释放流所占用的资源 26 fsRead.Dispose(); 27 Console.WriteLine(s); 28 Console.ReadKey(); 29 30 31 32 //使用FileStream来写入数据 33 //using (FileStream fsWrite = new FileStream(@"C:\Users\SpringRain\Desktop\new.txt", FileMode.OpenOrCreate, FileAccess.Write)) 34 //{ 35 // string str = "看我游牧又把你覆盖掉"; 36 // byte[] buffer = Encoding.UTF8.GetBytes(str); 37 // fsWrite.Write(buffer, 0, buffer.Length); 38 //} 39 //Console.WriteLine("写入OK"); 40 //Console.ReadKey(); 41 } 42 } 43 }
1.使用文件流来实现多媒体文件的复制
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.IO; 7 8 namespace _07使用文件流来实现多媒体文件的复制 9 { 10 class Program 11 { 12 static void Main(string[] args) 13 { 14 //思路:就是先将要复制的多媒体文件读取出来,然后再写入到你指定的位置 15 string source = @"C:\Users\SpringRain\Desktop\1、复习.wmv"; 16 string target = @"C:\Users\SpringRain\Desktop\new.wmv"; 17 CopyFile(source, target); 18 Console.WriteLine("复制成功"); 19 Console.ReadKey(); 20 } 21 22 public static void CopyFile(string soucre, string target) 23 { 24 //1、我们创建一个负责读取的流 25 using (FileStream fsRead = new FileStream(soucre, FileMode.Open, FileAccess.Read)) 26 { 27 //2、创建一个负责写入的流 28 using (FileStream fsWrite = new FileStream(target, FileMode.OpenOrCreate, FileAccess.Write)) 29 { 30 byte[] buffer = new byte[1024 * 1024 * 5]; 31 //因为文件可能会比较大,所以我们在读取的时候 应该通过一个循环去读取 32 while (true) 33 { 34 //返回本次读取实际读取到的字节数 35 int r = fsRead.Read(buffer, 0, buffer.Length); 36 //如果返回一个0,也就意味什么都没有读取到,读取完了 37 if (r == 0) 38 { 39 break; 40 } 41 fsWrite.Write(buffer, 0, r); 42 } 43 44 45 } 46 } 47 } 48 49 50 } 51 }
2.StreamReader和StreamWriter
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.IO; 7 namespace _08StreamReader和StreamWriter 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 //使用StreamReader来读取一个文本文件 14 using (StreamReader sr = new StreamReader(@"D:\桌面\a.txt", Encoding.Default)) 15 { 16 using (StreamWriter sw = new StreamWriter(@"D:\桌面\b.txt",true)) 17 { 18 while (!sr.EndOfStream) 19 { 20 Console.WriteLine(sr.ReadLine()); 21 sw.Write(sr.ReadLine()); 22 } 23 } 24 Console.WriteLine("OK"); 25 Console.ReadKey(); 26 } 27 28 29 //使用StreamWriter来写入一个文本文件 30 //using (StreamWriter sw = new StreamWriter(@"C:\Users\SpringRain\Desktop\newnew.txt",true)) 31 //{ 32 // sw.Write("看我有木有把你覆盖掉"); 33 //} 34 //Console.WriteLine("OK"); 35 //Console.ReadKey(); 36 } 37 } 38 }