FileStream和File对比

File:是一次性读取或写入文件,对内存的占用率比较高。操作小文件无影响,大文件程序容易卡。
FileStream:是一点点地读取或写入文件,对内存的占用率比较低。操作字节,适合操作大文件。

FileStream创建

FileStream fs = new FileStream(@"文件路径",文件的打开,对文件的操作);
//创建读取流
FileStream fs = new FileStream(@"文件路径",FileMode.Open,FileAccess.Read);
//创建写入流
FileStream fs = new FileStream(@"文件路径",FileMode.OpenOrCreate,FileAccess.Write);

FileStream释放资源

using帮助我们释放FileStream资源

using(FileStream fsread = new FileStream(path1, FileMode.Open, FileAccess.Read)){ byte[] buffer = new byte[1024*1024*5]; //创建一个5M的字节数组 int n = fsread.Read(buffer,0,buffer.Length); //用5M的字节数组读取文件,返回值为,有效的字节数组长度 string s = Encoding.UTF8.GetString(buffer,0,n); //把字节数组转换成字符串,只转换有数据的数组元素,长度为0-n,这样不用访问整个数组。 Console.WriteLine(s); using(FileStream fswrite = new FileStream(path2,FileMode.OpenOrCreate,FileAccess.Write)){ string s = "数据"; byte[] buffer = Encoding.UTF8.GetBytes(str); //把字符串转成字节数组 // byte[] buffer = System.Text.Encoding.UTF8.GetBytes(str); fs.Write(buffer,0,buffer.Length);
//复制,读取,写入的嵌套使用,需要创建在新方法里
	public static void CopyFile(string path1,string path2)
            using (FileStream fsread = new FileStream(path1, FileMode.Open, FileAccess.Read))
                using (FileStream fswrite = new FileStream(path2,FileMode.OpenOrCreate,FileAccess.Write))
                    byte[] b = new byte[1024 * 1024 * 5];
                    //不断读取,直到数据结尾,结束读取
                    while (true)
                        int n = fsread.Read(b, 0, b.Length);
                        if (n == 0)
                            break;
                        fswrite.Write(b, 0, n);
                    FileStream和File对比File:是一次性读取或写入文件,对内存的占用率比较高。操作小文件无影响,大文件程序容易卡。FileStream:是一点点的读取或写入文件,对内存的占用率比较低。操作字节,适合操作大文件。FileStream创建FileStream fs = new FileStream(@"文件路径",文件的打开,对文件的操作);//创建读取流FileStream ...
使用File就是整个用桶倒进去,使用FileStream就是使用水管慢慢输送。
FileStream与StreamReader的区别
FileStream是操作字节的,即可以操作任意一种类型的文件。
StreamReader是操作字符的,即只能操作文本文件。
首先新建一个txt文件。
然后编写控制台程序
//FileMode.OpenOrCreate : 文件打开方式 没有则创建 有则打开
      //FileAccess.Read:对数据的访问权限 只读
      FileStream f
				
在项目开发中经常会涉及到对文件的读写,c# 提供了很多种方式来对文件进行读写操作,今天来说说FileStream 对象。 FileStream表示在磁盘或网络路径上指向文件。一般操作文件都习惯使用StreamReader 和 StreamWriter,因为它们操作的是字符数据 。而FileStream 对象操作的是字节和字节数组。有些操作是必须使用FileStream 对象执行的,如随机访问文件中间某点的数据。 创建FileStream 对象有许多不同的方法,这里使用文件名和FileMode枚举值创建: 一、 读取文件,记得引用 System.IO 命名空间: using System;
C# FileStream类 在 C# 语言中文件读写使用 FileStream 类来表示,FileStream 类主要用于文件的读写,不仅能读写普通的文本文件,还可以读取图像文件、声音文件等不同格式的文件。区别于File类的是它对文件可进行分步读写,减小内存压力,缺点是我们需要手动的关闭和释放资源, FileAccess FileAccess 枚举类型主要用于设置文件的访问方式,具体的枚举值如下。     ●  Read:以只读方式打开文件。     ●  Write:以写方式打开文件。     ●  ReadWrite:以读写方式打开文件。 FileMode FileMode 枚举类型
FileStream类:主要用于对文件进行读取、写入、打开和关闭操作,并对其他与文件相关的操作系统句柄进行操作,如管道、标准输入和标准输出。读写操作可以指定为同步或异步操作。FileStream对输入输出进行缓冲,从而提高性能。——MSDN **简单点说:FileStream类可以对任意类型的文件进行读取操作,可根据需要来指定每次读取的字节长度(这是比File类优秀的地方之一),... CS中FileStream的对比以及使用方法: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100396022 关注公众号霸道的程序猿获取编程相关电子书、教程推送与免费下载。 将创建文件对象的过程写在using中,会自动的帮助我们释放所占用的资源。 新建命令行程序: //使用File...
本文借鉴《编写高质量的C#代码:改善C#程序的157个建议》,算是对自己学习的总结,也希望分享下所学知识~~ 垃圾回收机制会自动回收资源(自动调用终结器),还需要手动释放资源吗? 当然需要。 什么时候会发生垃圾回收: 系统具有低的物理内存。 托管堆上已分配的对象使用内存超出了可接受的范围。 调用 GC.Collect 方法。 看下面的代码: public void TestFunc() FileStream fileStream = new FileStream("test.txt", Fi
string filePath = "C:\\test.txt"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.ContentType = "application/octet-stream"; request.ContentLength = new FileInfo(filePath).Length; using (Stream requestStream = request.GetRequestStream()) using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read)) byte[] buffer = new byte[4096]; int bytesRead = ; while ((bytesRead = fileStream.Read(buffer, , buffer.Length)) != ) requestStream.Write(buffer, , bytesRead); using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) // 处理响应