C#基础学习之FileStream
2023-09-14 09:06:38 时间
FileStream和File的区别 后者比前者给内存带来压力大。
FileStream可以操作字节也就是可以保存任何类型的文件。
1.FileStream读文件操作
//OpenOrCreate:有就打开,没有就创建 //FileStream 3个参数的含义: 1.path 2,针对文件什么操作,3针对文件内容怎么操作 FileStream fsRead = new FileStream(@"D:\extension_6_12.crx", FileMode.OpenOrCreate, FileAccess.Read); byte[]buffer=new byte[1024*1024*5];//1024*1024*5 只读取5M,不要写太大比如8G 那就内存溢出了。 //if file byte.length=3.8M //返回本次实际读取的有效字节数。 int r=fsRead.Read(buffer, 0, buffer.Length);//从0读,到最大内容长度5M. //将字节数组解码成字符串 string s = Encoding.Default.GetString(buffer,0,r); //只解码内容的部分 //关闭,GC垃圾回收处理器不会自己自动回收 fsRead.Close(); //释放资源 fsRead.Dispose(); Console.WriteLine(s); Console.ReadKey();
2.FileStream写文件操作
// 使用FileStream写入数据 using (FileStream fs=new FileStream(@"D:\\new.txt",FileMode.OpenOrCreate,FileAccess.Write)) { string str="666666666666666666666"; byte[] buff = Encoding.UTF8.GetBytes(str); fs.Write(buff,0,buff.Length);//如果文件存在那么将,一个一个字符覆盖文件 } Console.WriteLine("写入文件"); Console.ReadKey();
3.多媒体文件的复制
将多媒体文件读出来,让后写入到另一个文件
string source = @"c:\\zumba.mp3"; string targetSource = @"D:\\zumba.mp3"; using (FileStream fsRead=new FileStream(source,FileMode.OpenOrCreate,FileAccess.Read)) { using (FileStream fsWrite=new FileStream(targetSource,FileMode.OpenOrCreate,FileAccess.Write)) { byte[] buffer = new byte[1024 * 1024 * 6]; //最多读取6M //文件比较大所以循环读取 //返回本次读取实际取代的字节数。 while (true) { int r = fsRead.Read(buffer, 0, buffer.Length); //如果返回长度0意味着读取完毕 if(r==0) { break; } fsWrite.Write(buffer, 0, r); } } }
相关文章
- 【原创】开源Math.NET基础数学类库使用(11)C#计算相关系数
- C# 系统应用之ListView控件 (三).添加ContextMenuStrip右键菜单打开删除文件
- .Net中C#的DllImport的用法
- C#.NET常见问题(FAQ)-如何引用定义好的dll文件
- C#基础视频教程7.4 如何编写简单游戏
- C#基础视频教程6.1 如何简单读写数据库
- 重学c#系列—— IO流[三十四]
- [C#基础]说说委托+=和-=的那些事
- [c#基础]堆和栈
- c# 优化代码的一些规则——字符串使用优化[四]
- C# DataSet.Clear 方法
- C#中如何比较2个string类型的日期大小?
- 有关C#中的引用类型的内存问题
- C#中的枚举类型(enum type)
- C# 网页图片爬虫的几种技术基础
- C#基础——值类型和引用类型
- C#基础——控制语句
- C#编程基础第三章:C#运算符和选择语句
- (六十八)c#Winform自定义控件-DEMO整理-HZHControls
- (25)C# error CS0281: 友元访问权限
- (9)C#里发现SuperSocket库不能发现命令的原因
- C# winfrom 窗体的StartPosition 属性