• C#IO流文件操作


    文件流

    创建文件流

    读写文件的第一步就是创建文件流,流是一个用于数据传输的个对象,它是FileStream类型,在创建一个文件流是需要在他的构造中指定参数

    语法:

    FileStream 文件流对象=new FileStream( String filePath,FileMode fileMode);

    其中filePath用于指定要操作的文件,fileMode用于指定文件的打开方式,它是一个枚举类型,

    fileMode的常用成员如下:

    • Create:用指定的名称新建一个文件,如果文件已存在则覆盖原有的文件
    • CreateNew:新建一个文件,如果文件已存在会报异常提示文件已存在
    • Open:打开一个文件,使用这个枚举是文件必须已存在,否则会报异常
    • OpenOrCreate:与Open成员类似,如果文件不存在则用指定的名称新建一个文件并打开它
    • Appen:打开现有文件,并在末尾追加新的内容。

    小提示:“”在C#中表示转译,所以我们在写文件路径是不能直接以这样的形式写(“D:files”),我们可以在“”号的前面加一个@符号来取消转译,也可以用”\”来代替“”

    文件读写器

    创建文件流之后,我们要创建读取器或者写入器,StreamWrite被称为写入器只要将创建好的文件流传入就可以创建它的实例

    StreamWriter sw=New StreamWriter(文件流对象);

    创建好写入器之后我们就可以调用他的方法向文件类文件流,其主要方法如下:

    • StreamWriter.Write():用于写入流,这个流是我们创建好的流
    • StreamWriter.WriteLine():用于写入一行数据,写入某些数据后跟换行符
    • StreamWriter.Close():用于关闭写入器

    注意:当写入器使用完毕后一定要调用Close()方法关闭写入器,否则会发生要写的内容无法写入文件的情况。

    StreamReader读取器

    StreamReader主要用于读取流中的数据,它主要包含以下方法:

    • StreamReader.ReadLIne():读取文件流中的一行数据,并返回字符串
    • StreamReader.ReadToEnd():从当前位置读到末尾,返回字符串
    • StreamReader.Close();用于关闭读取器。

    解决乱码问题

    用StreamReader读取文件中的中文文本,有事会出现乱码问题。这并不是C#语言的问题,有可能是因为编码格式的问题。在读取文件是指定对应的编码格式已解决乱码问题。

    如:StreamReader myfil=new StreamReader(文件流对象,Encoding.Default);

    Encoding的静态成员指定编码格式。如:

    • Default表示获取操作系统当前的编码格式
    • UTF-8表示获取UTF-8格式的编码

    文件和目录操作

    File和Directory类

    File类的常用方法

    返回值类型 方法名称 说明
    bool Exists(string path) 用于检查指定文件是否存在
    void Copy(string sourceFilePath,string destinationFilePath) 将指定路径的原文件中的内容复制到目标文件中,如果目标文件不存在,则在指定路径中新建一个文件
    void Move(string sourceFilePath,string  destFileName) 将制定问价移动到一个新的路径
    void Delete(string path) 删除指定的文件,如果指定的文件不存在,则不引发异常

    File类对文件进行操作而Directory类对目录进行操作(文件夹)

    Directory类的常用方法

    返回值类型 方法名称 说明
    bool Exists(string path) 用于检查指定文件夹在磁盘上是否存在
    void Move(string sourceDirName,string destDirName) 用于将文件或目录文件及其内容移到新位置
    void Delete(string path,bool recursive) 删除指定目录,如果recursive值为true,则删除子目录中的所有目录内容

    静态类和静态方法

    静态类只含有静态方法,不能使用new关键字创建静态类的实例。

    静态类与非静态类的区别

    静态类 非静态类
    用static修饰 不用static修饰
    只包含静态成员 可以包含静态成员
    不可以包含实例成员 可以包含实例成员
    使用类名调用静态成员 使用实例对象调用非静态成员
    不能被实例化 可以被实例化
    不能包含实例构造函数 包含实例构造函数
  • 相关阅读:
    windows应用程序单实例
    11. 无数人难办事?
    递归、尾递归和使用Stream延迟计算优化尾递归
    吴裕雄--天生自然MySQL学习笔记:MySQL 函数
    吴裕雄--天生自然MySQL学习笔记:MySQL 导入数据
    吴裕雄--天生自然MySQL学习笔记:MySQL 导出数据
    吴裕雄--天生自然MySQL学习笔记:MySQL 及 SQL 注入
    吴裕雄--天生自然MySQL学习笔记:MySQL 处理重复数据
    吴裕雄--天生自然MySQL学习笔记:MySQL 序列使用
    吴裕雄--天生自然MySQL学习笔记:MySQL 元数据
  • 原文地址:https://www.cnblogs.com/SUXIAOSHUAI/p/9055125.html
Copyright © 2020-2023  润新知