FileStream文件流的读写方式:
文件流读文件
1 2 3 4 5 6 7 8 9 |
using ( FileStream file = new FileStream(@"C:\Users\Administrator\Desktop\拆箱装箱问题.txt", FileMode.OpenOrCreate, FileAccess.Read) ) { byte[] s = new byte[1024 * 1024 * 4];//字节数组 int number = file.Read(s, 0, s.Length); string str = Encoding.Default.GetString(s, 0, number);//字节数组转字符串 Console.WriteLine(str); Console.ReadKey(); } |
文件流写入
1 2 3 4 5 6 7 8 |
FileStream file = new FileStream(@"C:\Users\Administrator\Desktop\拆问题.txt", FileMode.OpenOrCreate, FileAccess.Write); string s="我是一个爱好和平的好稍等是的所多所多所孩子"; byte[] st=Encoding.Default.GetBytes(s);//字符串转字节数组 file.Write(st, 0, st.Length); Console.WriteLine("写入成功"); file.Close();//释放资源 file.Dispose(); |
2.FileStream不能被GC直接回收
文件流两种释放资源的方式:dispose() close();using(){};
******文件流的形式复制多媒体文件*******
(复制文件的啥时候就不需要编码与解码)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
static void Main(string[] args) { string soure = @"C:\Users\Administrator\Desktop\校园购物网站.wmv"; string target = @"C:\Users\Administrator\Desktop\校园购.wmv"; FileReadandWrite(soure, target); } public static void FileReadandWrite(string soure,string target)//定义一个静态方法 { using (FileStream read = new FileStream(soure, FileMode.OpenOrCreate, FileAccess.Read))//创建读取文件的文件流 { using (FileStream write = new FileStream(target, FileMode.OpenOrCreate, FileAccess.Write))//创建写入文件流 { byte[] count = new byte[1024 * 1024 * 5];//定义每次读取文件大小的字节数组 while (true) { int number = read.Read(count, 0, count.Length);//返回实际读到的字节数组 if (number == 0)//判断当读到的字节数为0的时候跳出循环 { break; } write.Write(count, 0, number);//number表示最后一次实际读到的文件的大小 Console.WriteLine("写入成功"); } } } } |