zoukankan      html  css  js  c++  java
  • File,FileInfo,FileStream,StreamReader的区别与用法

    概括的说,File,FileInfo,FileStream是用于文件 I/O 的类,StreamReader是用于从流读取和写入流的类,使用之前都需using System.IO。

    先定义一个TXT文档路径: string txtpath = (@"D:C#练习1.txt"); 要读入这个文档。

    (1)File 提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建 FileStream。

    FileStream fs = File.Open(txtpath, FileMode.Open);

    File可以直接调用各种方法(Open、Delete、Exists等)

    例如: if (File.Exists(txtpath)) { File.Delete(txtpath); }

    (2)FileInfo 提供用于创建、复制、删除、移动和打开文件的实例方法,并协助创建 FileStream。

    FileInfo fi = new FileInfo(txtpath); //实例化

    FileStream fs = fi.Open();

    (3)FileStream 支持通过其 Seek 方法随机访问文件。默认情况下,FileStream 以同步方式打开文

    件,但它也支持异步操作。

    利用FileStream 我们可以得到一个文件的Streams,接着就是来读取。

    (4)StreamReader 通过使用 Encoding 进行字符和字节的转换,从 Streams 中读取字符。

    StreamWriter 通过使用 Encoding 将字符转换为字节,向 Streams 写入字符。

    StreamReader sr = new StreamReader(fs);

    string str = null; string temp=null; while((temp=sr.ReadLine())!=null) { str+=" "+temp; }

    得到一个字符串,再可以对字符串进行处理。

    PS:

    TextReader 是 StreamReader 和 StringReader 的抽象基类。抽象 Stream 类的实现用于字节输入和输出,而 TextReader 的实现用于 Unicode 字符输出。

    TextWriter 是 StreamWriter 和 StringWriter 的抽象基类。抽象 Stream 类的实现用于字节输入和输出,而 TextWriter 的实现用于 Unicode 字符输出。

    File类的方法每次执行都要验证安全机制,所以在少量使用的时候用File效率高,但是如果用的多了 要用FileInfo效率高

  • 相关阅读:
    rabbitmq在centos7下安装
    跨域问题
    11生成器相关及推导式(附内置函数分析图url)
    10函数名的应用,闭包,和迭代器
    09函数的动态传参及global和nonlocal关键字
    08函数简介
    07基本的文件操作
    06set集合和深浅拷贝(包括前面的一些知识点补充)
    05判断和编码/解码
    04基本数据类型(字典)
  • 原文地址:https://www.cnblogs.com/disneyland/p/4133339.html
Copyright © 2011-2022 走看看