自学内容网 自学内容网

C# 文件IO


前言

  流就是通过通信路径传递的字节序列,而在文件操作里,主要存在两个关键的流类型:输入流与输出流。输入流负责从文件中读取数据,也就是执行读操作;输出流则承担着向文件写入数据的任务,即进行写操作。
在这里插入图片描述

一、C# I/O 类:丰富的文件操作工具集

  System.IO 命名空间犹如一个装满各种工具的宝库,其中包含了形形色色的类,这些类能够帮助我们执行各式各样的文件操作,涵盖了从文件的创建、删除,到数据的读取、写入,再到文件的关闭等全流程操作。以下是对该命名空间中一些常用的非抽象类的详细介绍:
在这里插入图片描述

二、FileStream 类

(一)创建 FileStream 对象

  要想利用 FileStream 类进行文件操作,首先需要创建一个 FileStream 对象,其语法如下:

FileStream <object_name> = new FileStream( <file_name>,
<FileMode Enumerator>, <FileAccess Enumerator>, <FileShare Enumerator>);

  例如,若要创建一个 FileStream 对象 F 来读取名为 sample.txt 的文件,可以这样写:

FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read, FileShare.Read);

  在这里,各个参数都有着明确且重要的含义,它们共同决定了文件的打开方式以及后续的读写权限等关键属性。
在这里插入图片描述
  以下是一个展示 FileStream 类用法的实例:

using System;
using System.IO;

namespace FileIOApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            FileStream F = new FileStream("test.dat",
            FileMode.OpenOrCreate, FileAccess.ReadWrite);

            for (int i = 1; i <= 20; i++)
            {
                F.WriteByte((byte)i);
            }

            F.Position = 0;

            for (int i = 0; i <= 20; i++)
            {
                Console.Write(F.ReadByte() + " ");
            }
            F.Close();
            Console.ReadKey();
        }
    }
}

  当上述代码被编译和执行时,先是通过 FileStream 对象 F 以读写权限打开(如果不存在则创建)名为 test.dat 的文件,然后循环向文件里写入字节数据(从 1 到 20),接着将文件指针位置重置为 0,再循环读取文件中的字节数据并输出,最终关闭文件,输出结果为:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 -1

三、C# 高级文件操作:挖掘更多强大功能

  前面的实例仅仅展示了 C# 中较为简单的文件操作方式,而要想充分发挥 System.IO 类的强大威力,深入了解这些类常用的属性和方法是必不可少的。接下来我们将探讨几个重要的高级文件操作主题:

(一)文本文件的读写

  文本文件的读写操作极为常见,这就涉及到 StreamReader 和 StreamWriter 类的应用。StreamReader 类专门用于从字节流中读取字符,它能够轻松地将文本文件里的字符数据按照一定规则解析出来,方便我们在程序中进行处理,比如读取配置文件里的文本配置项、读取文本格式的日志内容等场景。而 StreamWriter 类则是用于向一个流中写入字符,通过它可以将我们想要保存的文本内容准确无误地写入到文本文件中,例如将用户输入的文本信息保存为一个文本文件,或者实时更新文本格式的日志文件等操作都离不开 StreamWriter 类的支持。

(二)二进制文件的读写

  对于二进制文件的读写操作,BinaryReader 和 BinaryWriter 类就派上了用场。如前文所述,BinaryReader 能够从二进制流读取原始数据,在处理像图片、音频、视频等以二进制形式存储的文件,或者自定义二进制格式的数据文件时,它可以帮助我们精确地解析出其中的各个数据部分,为后续的处理提供基础。与之对应的 BinaryWriter 类,以二进制格式将原始数据写入相应的流,比如我们要生成一个特定结构的二进制文件来存储程序运行的关键数据,就可以利用 BinaryWriter 类按照预定的二进制格式规则进行数据写入操作。

(三)Windows 文件系统的操作

  这一功能让 C# 程序员能够轻松地浏览并定位 Windows 文件和目录,借助 Directory、DirectoryInfo、File、FileInfo 等相关类的协同作用,可以实现诸如查看文件夹下的文件列表、获取文件的详细属性、创建或删除文件夹及文件等丰富多样的操作,从而打造出功能强大的文件管理应用程序,满足各种实际业务场景中对文件系统操作的需求,像是开发一个本地文件搜索引擎、文件同步工具等应用都需要深入运用这些文件系统操作相关的功能。
在这里插入图片描述


原文地址:https://blog.csdn.net/2401_83367969/article/details/144103229

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!