C#流类FileStream学习使用笔记

C#流类FileStream学习使用笔记

什么是流类FileStream

流类是C#中处理文件(文本、图片、音频等)的类,其中FileStream是最基本最常用的流类之一。相较于其他流类如MemoryStream、StringWriter等,FileStream是读写磁盘文件最快的方式。

FileStream的构造函数

FileStream类的构造函数包含多个重载形式:

public FileStream(String path, FileMode mode)
public FileStream(String path, FileMode mode, FileAccess access)
public FileStream(String path, FileMode mode, FileAccess access, FileShare share)

其中各个参数的含义如下:

  • path:文件路径。
  • mode:文件打开模式,可选值为Create、CreateNew、Open、OpenOrCreate、Truncate。
  • access:文件访问权限,可选值为Read、Write、ReadWrite等。
  • share:共享方式,可选值为None、Read、Write、ReadWrite、Delete等。

FileStream的使用示例

示例1:读取文件内容

using System;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        string filePath = @"C:\temp\test.txt";

        // 以只读方式打开文件
        using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
        {
            Console.WriteLine("文件内容:");
            byte[] buffer = new byte[1024];
            int len = fs.Read(buffer, 0, buffer.Length);
            while (len > 0)
            {
                Console.Write(Encoding.UTF8.GetString(buffer, 0, len));
                len = fs.Read(buffer, 0, buffer.Length);
            }
        }
    }
}

以上示例演示了如何使用FileStream读取文件内容,其中常用到的函数为Read()方法,该方法有三个参数:第一个参数为读取到的字节数组,第二个参数为从数组的哪个位置开始存储,第三个参数为读取的字节数。示例中将读取到的字节数组转换为字符串,然后输出到控制台。

示例2:写入文件内容

using System;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        string filePath = @"C:\temp\test.txt";
        string content = "Hello, FileStream!";

        // 以写入方式打开文件
        using (FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write))
        {
            byte[] buffer = Encoding.UTF8.GetBytes(content);
            fs.Write(buffer, 0, buffer.Length);
        }
    }
}

以上示例演示了如何使用FileStream写入文件内容,其中常用到的函数为Write()方法,该方法有三个参数:第一个参数为写入的字节数组,第二个参数为从数组的哪个位置开始写入,第三个参数为写入的字节数。示例中将字符串转换为字节数组,然后写入到文件中。

总结

通过以上两个示例,我们可以看出FileStream的使用方法其实很简单,只需要在构造函数中指定文件路径、打开模式、访问权限和共享方式,然后使用Read()方法或Write()方法进行读取或写入。FileStream是处理文件操作最快的方式,学会了FileStream的使用方法,对于爬虫、文件上传、日志系统等领域有非常重要的作用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#流类FileStream学习使用笔记 - Python技术站

(0)
上一篇 2023年6月1日
下一篇 2023年6月1日

相关文章

  • C#一个方法返回多个值示例

    下面是关于C#一个方法返回多个值的完整攻略。 什么是返回多个值的方法 C#的函数(方法)通常只能返回一个值,但是有时候一个函数需要返回多个值,此时就需要使用一些特殊的方式实现返回多个值的方法,例如使用元组(Tuple)、结构体(Struct)或者自定义类型等方式。 使用元组实现一个方法返回多个值 元组是用来组合多个数据项的一种数据结构。在C#7中,引入了元组…

    C# 2023年5月15日
    00
  • ASP.NET Core Kestrel 中使用 HTTPS (SSL)

    在 ASP.NET Core 中,可以使用 Kestrel 服务器来启用 HTTPS(SSL)协议。以下是 ASP.NET Core Kestrel 中使用 HTTPS 的完整攻略: 步骤一:创建证书 在使用 HTTPS 之前,需要创建一个证书。可以使用 OpenSSL 工具或者 Windows PowerShell 命令来创建证书。以下是使用 OpenSS…

    C# 2023年5月17日
    00
  • ASP.NET Core中间件会话状态读写及生命周期示例

    ASP.NET Core中间件会话状态读写及生命周期示例 在ASP.NET Core应用程序中,会话状态是一种在多个请求之间保持数据的机制。在本攻略中,我们将详细讲解如何在ASP.NET Core中间件中读写会话状态,并介绍会话状态的生命周期。 步骤一:启用会话状态 在ASP.NET Core应用程序中启用会话状态,您需要在Startup.cs文件中调用Ad…

    C# 2023年5月17日
    00
  • C#中的递归APS和CPS模式详解

    C#中的递归APS和CPS模式详解 什么是递归APS模式 递归APS(Also Known As All-Pairs Shortest Path)模式是一种计算图中所有顶点之间最短路径的算法。我们可以使用递归APS模式在C#中找到图中所有顶点的最短路径。 在C#中,我们可以使用递归调用来实现递归APS。 递归APS模式的基本思想 递归APS模式可以被看做是动…

    C# 2023年6月7日
    00
  • 使用C#开发ActiveX控件

    使用C#开发ActiveX控件 简介 ActiveX控件是一种非常通用的组件技术,它可以被其它程序(包括浏览器和其他应用程序)调用和控制。一些不支持COM技术的语言(比如Java)可以通过使用ActiveX控件来调用Windows API。本文将介绍如何使用C#语言来开发ActiveX控件,以及如何将其嵌入到HTML页面中,供浏览器或者其他应用程序调用。 开…

    C# 2023年6月7日
    00
  • C# 关于AppDomain的一些总结

    关于C#中的AppDomain,我来进行详细的说明和总结。 一、什么是AppDomain 在C#中,每个线程都属于一个应用程序域(AppDomain)。AppDomain是.NET中用于进程隔离的一种技术,可以将应用程序分隔为不同的域,从而提高了程序的安全性和稳定性。 AppDomain可以看作是CLR(公共语言运行库)中的一个隔离容器,它可以加载和执行单独…

    C# 2023年5月14日
    00
  • 关于.NET6 Minimal API的使用方式详解

    关于.NET6 Minimal API的使用方式详解 .NET6 Minimal API是.NET6中的一个新特性,它提供了一种更简单、更轻量级的方式来创建Web API。本攻略将详细介绍.NET6 Minimal API的使用方式。 创建.NET6 Minimal API项目 我们可以使用以下命令来创建一个.NET6 Minimal API项目: dotn…

    C# 2023年5月17日
    00
  • 使用C#实现数据结构堆的代码

    实现堆这种数据结构,可以使用C#中的数组和树,其中数组实现起来比较简单,树的实现则需要递归结构。下面是一份完整的攻略: 1. 确定堆的类型 在进行堆的实现之前,需要先确定堆的类型,堆可以分为小根堆和大根堆,分别按照最小值和最大值进行排序。在本文中,我们将以大根堆为例进行代码实现。 2. 定义堆的结构体 使用C#可以使用自带的List数据结构和自己定义的结构体…

    C# 2023年6月6日
    00
合作推广
合作推广
分享本页
返回顶部