zoukankan      html  css  js  c++  java
  • c#之文件操作(学习笔记)

    File类和Directory类

    FileInfo类

    需要提供一个文件路径来创建一个FileInfo类实例对象,FileInfo提供很多类似File的方法,在选择使用File还是FileInfo时应遵循下面的规则:

    1、如果要对某个文件只进行一次复制操作,则可以使用File的静态方法,因为不必创建对象再调用方法,所以会快一些。

    2、如果对某个文件进行很多次操作(如:复制、移动、重命名等),那么使用FileInfo会快一些,因为对象在开始就确定了某个文件,不像File一样每次都要去寻找文件

    FileInfo、File、Directory通用属性

    DirectoryInfo类

    类似于FileInfo类。DirectoryInfo类的属性与FileInfo类一样,只是这些属性用于目录

    DirectoryInfo类的专用属性

    使用FileStream对象读取和写入

    一:创建对象
    FileStream表示在磁盘上指向文件的流,该类操作的是字节或字节数组,该类可以从指定位置开始读取

    Stream类操作的字符数据,比起FileStream来更易于使用

    创建FileStream对象的方式多种多样,

    1、通过构造函数可以创建

    FileStream中FileMode的属性:

    2、File和FileInfo都提供了OpenRead()和OpenWrite()方法,更易于创建FileStream对象

    二:文件指针

    使用seek方法可以从文件的任何地方读取文件,当处理大型文件时非常省时

    三:读取数据

    使用FileStream类读取数据不像使用StreamReader类读取数据那样容易。因为FileStream类只能处理原始字节,所以不嗯呢该直接读入字符串,而StreamReader可以直接读入字符串,但是FileStream可以用于读取任何数据文件。

    FileStream.Read(byte[] array,int index,int count);

    第一个参数:用于接收FileStream对象数据的数组

    第二个参数:字节数组中开始写入数据的位置

    第三个参数:指定从文件中读取多少个字节

    四:将字节数组转换为字符串:

    Encoding.UTF8.GetDecoder().GetChars方法,参数不做介绍了F12可以查看到

    写入数据

    跟读入数据很类似

    StreamWriter对象

    StreamWriter类允许将字符串写入到文件中,向FileStream对象写入数据

    一:创建StreamWriter对象

    方法一:

    FileStream fileStream = new FileStream(@"log.txt",FileMode.CreateNew);

    StreamWriter sw= new StreamWriter(fileStream);

    方法二:

    StreamWriter sw = new StreamWriter("log.txt",true); // 第二个参数规定是否追加文件,false如果文件存在则改写该文件,否则创建一个新文件,true:如果文件存在,保留文件内容并向后追加,否则创建一个新文件,

    示例:

    StreamReader对象

     用于从外部数据源中读取数据,使用方法同StreamWriter

    示例:

    使用ReadLine()读取文本,这个方法读取回车符之前的文本,当达到文本末尾时返回null。

    StreamReader有多个读取文本的方法,

    Read()

    此方法将字符作为正整数值返回,如果达到了流的结尾处,返回-1.上面的实例中可以这样编写:

    对于小文件,可以用ReadToEnd

  • 相关阅读:
    C++ string 类详解
    C语言 -- 字符串详解
    基本数据结构 -- 链表的遍历、查找、插入和删除
    Shell 基础 -- 总结几种括号、引号的用法
    用 C 语言描述几种排序算法
    Win10 + vs2017 编译并配置tesseract4.1.0
    前端如何引入vConsole
    php设计模式-数据对象映射模式
    PHP设计模式-策略模式
    PHP设计模式-适配器模式
  • 原文地址:https://www.cnblogs.com/lfxiao/p/6760455.html
Copyright © 2011-2022 走看看