文件流操作(FileStream,StreamReader,StreamWriter)

大文件拷贝:

 1 /// <summary>
 2         /// 大文件拷贝
 3         /// </summary>
 4         /// <param name="sSource"></param>
 5         /// <param name="sTarget"></param>
 6         private static void CopyFile(string sSource, string sTarget)
 7         {
 8             using (FileStream fsRead=new FileStream(sSource,FileMode.Open,FileAccess.Read))
 9             {
10                 using (FileStream fsWrite=new FileStream(sTarget,FileMode.Create,FileAccess.Write))
11                 {
12                     double n = (double)fsRead.Length;
13                     Stopwatch sw = new Stopwatch();
14
15                     sw.Start();
16                     while (true)
17                     {
18                         //定义一个6MB的缓冲区
19                         byte[] buffer = new byte[6 * 1024 * 1024];
20                         int m = fsRead.Read(buffer, 0, buffer.Length);
21
22                         if (m==0)
23                         {
24                             break;
25                         }
26                         else
27                         {
28                             fsWrite.Write(buffer, 0, m);
29                             double dl = Math.Round(((double)fsWrite.Position / n) * 100, 1);
30                             Console.WriteLine("总进度:{0}%", dl);
31                         }
32                     }
33                     sw.Stop();
34                     double iTime = Math.Round((double)sw.ElapsedMilliseconds / 1000, 2);
35                     Console.WriteLine("总运行时间:"+iTime+"秒");
36                 }
37             }
38         }

FileStream是对字节(byte)的操作,上面这种方法拷贝电影文件,大的压缩文件等没问题,但是对于文本文件多半使用后面2个类StreamReader,StreamWriter,

 1 #region 使用StreamWriter进行写
 2             using (StreamWriter sw = new StreamWriter(@"D:\demo.txt"))
 3             {
 4                 for (int i = 1; i <= 20; i++)
 5                 {
 6                     sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd") + "\t" + i.ToString());
 7                 }
 8             }
 9             Console.WriteLine("OK");
10             #endregion

 1 #region 使用StreamReader进行读
 2             using (StreamReader sr = new StreamReader(@"D:\demo.txt"))
 3             {
 4                 string s = sr.ReadLine();
 5                 while (!string.IsNullOrEmpty(s))
 6                 {
 7                     Console.WriteLine(s);
 8                     s = sr.ReadLine();
 9                 }
10             }
11             #endregion

时间: 2024-10-26 07:38:24

文件流操作(FileStream,StreamReader,StreamWriter)的相关文章

java FileStream文件流操作

直接上代码,函数使用说明详见Java API文档 import java.io.*; public class StreamDemo { public static void main(String[] args) { File f=new File("F:\\workspace\\JavaPrj\\test.txt"); FileOutputStream out=null; try { out=new FileOutputStream(f); byte[] b=new String(

C++ 文件流操作必知必会

一.文件流操作 1.确定文件打开的模式.可以选的模式主要有: ios::in 为输入(读)而打开一个文件ios::out 为输出(写)而打开文件 ios::ate 初始位置:文件尾 ios::app 所有输出附加在文件末尾 ios::trunc 如果文件已存在则先删除该文件 ios::binary 二进制方式 2.默认情况下是以文本的方式写文件,并且会删除原本文件中的数据,即ios::trunc 3.判断文件是否正常打开.好的文件操作习惯是,每次打开一个文件后,在进行文件写之前要判断文件是否正常

delphi 基础之三 文件流操作

文件流操作 Delphi操作流文件:什么是流?流,简单来说就是建立在面向对象基础上的一种抽象的处理数据的工具.在流中,定义了一些处理数据的基本操作,如读取数据,写入数据等,程序员是对流进行所有操作的,而不用关心流的另一头数据的真正流向.流不但可以处理文件,还可以处理动态内存.网络数据等多种数据形式.如果你对流的操作非常熟练,在程序中利用流的方便性,写起程序会大大提高效率的. 一.Delphi中流的基本概念及函数声明 在Delphi中,所有流对象的基类为TStream类,其中定义了所有流的共同属性

C语言中文件流操作基本函数总结

函数所在头文件:stdio.h 说明:前半部分主要为对各个文件流操作函数的例举,后半部分着重于 上机运行分析.文中部分引用自王桂林老师的C/C++课件. 1.FIELE *fopen(const char*filename,const char *mode) 以mode的方式,打开一个以filename(指针类型)命名的文件, 返回一个指向该文件缓冲区的指针,该指针是后续操作的句柄. 2.int fclose(FILE *stream) fclose()用来关闭先前用fopen()打开的文件.并

c文件流操作

文章目录 1.缓冲区 不管是输入还是输出,为了减少刷内存操作,一般都有一个缓冲区的,所以一般情况下都是先缓冲到缓冲区,当缓冲区满的时候.文件关闭或者手动刷新的时候才会读写到终端1.1输出函数区别cout << flush:刷新缓冲区到终端(<<操作符具有调用函数指针的作用)== cout.flush()cout<<endl:换行+刷新缓冲区到终端 == cout<<"n"<<flushcout<<"n&q

FrameWork:文件流操作

文件和流 绝对路径:E:\msd1508\Framework\Day05\Day05笔记.txt相对路径:从当前路径出发,到目的地的路径 假设当前路径是Day04 ..\Day05\Day05笔记.txt 网络路径 Using System.IO; File/FileSystemInfo 文件(文件操作方法) Directory/DirectoryInfo 目录(目录操作方法) DriveInfo 磁盘(磁盘操作方法) stream 流/抽象基类 FileStream 文件流/字节方法读写 St

File FileStream StreamReader StreamWriter C#

存在各种各样的IO设备,比如说文件File类(字符串文件和二进制文件),可以直接使用File类对文件进行读写操作. 这些各种IO的读取和写入是通过流的形式实现的,基类为Stream,针对各种不同的IO设备,就有FileStream,MemoryStream. FileStream可以实现任意格式,任意大小文件的读取,但是它的方法只能读取字节,不能直接读取读字符串或读一行等等,操作偏底层. 各种流的专用读写类Reader和Writer,主要用于方便读写文本和字符串,这些类中不仅可以用来读取字节,也

C++中输入输出流及文件流操作笔记

1.流的控制 iomanip          在使用格式化I/O时应包含此头文件.    stdiostream   用于混合使用C和C + +的I/O机制时,例如想将C程序转变为C++程序 2.类继承关系 ios是抽象基类,由它派生出istream类和ostream类, iostream类支持输入输出操作,iostream类是从istream类和ostream类通过多重继承而派生的类 类ifstream继承了类istream,类ofstream继承了类ostream,类fstream继承了

unity使用文件流操作streamingassets下的文件

背景: 1.Unity第一次启动时将streamingassets下的首包资源拷贝到persistentDataPath目录下. 2.Unity-android平台上的的这种操作只能使用www去加载streamingassets下的文件,导致速度问题. 备注: 1.此方案需要您对安卓有一点点的了解. 解决方案: 1.在打包的时候,将streamingassets下的文件目录做一个记录,每一个打包进去的相对streamingassets路径下的文件都记录在一个files.txt里面,比如strea

Android(三)文件流操作读写

1.将字符串写入文件流中.使用的是getFilesDir().存到手机内存中. File file = new File(getFilesDir() + "/info.txt"); try { OutputStream out = new FileOutputStream(file); out.write(text.getBytes()); out.close(); } catch (Exception e) { // TODO Auto-generated catch block e