C# 之 FileStream类介绍

这篇具有很好参考价值的文章主要介绍了C# 之 FileStream类介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

FileStream类

FileStream(文件流) 这个类主要用于二进制文件中读写,也可以使用它读写任何文件。

StreamReader(流读取器)和StreamWriter(流写入器)专门用于读写文本文件

使用FileStream读写二进制文件:
FileStream实例用于读写文件中的数据,要构造FileStream实例,需要提供下面的4中信息:

  1. 要访问的文件
    一般提供一个文件的完整路径名
  2. 表示如何打开文件的模式
    新建文件或打开一个现有文件,如果打开一个现有的文件,写入操作是覆盖文件原来的内容,还是追加到文件的末尾?
  3. 表示访问文件的方式
    只读、只写、还是读写
  4. 共享访问
    表示是否独占访问文件,如果允许其他流同时访问文件,则这些流是只读 只写 还是读写文件

构造函数的参数:

  • FileMode( 打开模式) Append,Create,CreateNew,Open,OpenOrCreate和Truncate
  • FileAccess(读取还是写入) Read,ReadWrite和Write
  • FileShare(文件共享设置) Delete,Inheritable,None,Read,ReadWrite和Write

PS:
如果文件不存在Append OpenTruncate会抛出异常, 如果文件存在 CreateNew会抛出异常; CreateOpenOrCreateCreate会删除现有的文件,新建一个空的文件,OpenOrCreate会判断当前是否有文件,没有的话才会创建;

注意事项:
当我们使用完了一个流之后,一定要调用fs.Close();方法去关闭流,关闭流会释放与它相关联的资源,允许其他应用程序为同一个文件设置流。这个操作也会刷新缓冲区。文章来源地址https://www.toymoban.com/news/detail-403876.html


示例代码

using System;
using System.IO;
using System.Text;

namespace CSharpDemo
{
    class Programma
    {
        static void Main(string[] args)
        {
            string path = @"E:\MyTest.txt";
            if (File.Exists(path)) // 校验文件是否存在
            {
                File.Delete(path);
            }
           
            // 创建并写入文件
            using (FileStream fs_write = File.Create(path))
            {
                byte[] info = new UTF8Encoding(true).GetBytes("123");
                fs_write.Write(info, 0, info.Length);
                byte[] info1 = new UTF8Encoding(true).GetBytes("456789");
                fs_write.Write(info1, 0, info1.Length);
            }

            // 读取文件
            using (FileStream fs_read = File.OpenRead(path))
            {
                byte[] byteArr = new byte[1024];
                UTF8Encoding coding = new UTF8Encoding(true);
                while (fs_read.Read(byteArr, 0, byteArr.Length) > 0)
                {
                    Console.WriteLine(coding.GetString(byteArr));
                }
            }
            Console.ReadKey();
        }
    }
}

到了这里,关于C# 之 FileStream类介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【再识C进阶5(上)】详细介绍C语言文件操作——文件是用于存储数据

    💓作者简介: 加油,旭杏,目前大二,正在学习 C++ , 数据结构 等👀 💓作者主页:加油,旭杏的主页👀 ⏩本文收录在:再识C进阶的专栏👀 🚚代码仓库:旭日东升 1👀 🌹欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖        在上一篇博客中,我们学习了一些 自定义类型

    2024年02月08日
    浏览(27)
  • Ansible yum模块 主要用于软件安装

    name= #所安装的包的名称 state= # present —安装, latest —安装最新的, absent — 卸载软件。 update_cache #强制更新yum的缓存 conf_file #指定远程yum安装时所依赖的配置文件(安装本地已有的包)。 disable_gpg_check #是否禁止GPG checking,只用于 present or latest 。 disablerepo #临时禁止使用yum库

    2024年02月22日
    浏览(27)
  • Linux Tip 03 文件类型属性、权限管理、拓展名、主要目录介绍、文件的相关操作、文件内容查看、文件的修改、文件和目录的权限、文件的查找

    一、用户的存储 在Linux系统中 系统上所有的账号和一般身份的用户以及root的相关信息都存在/etc/passwd这个文件中 个人的密码记录在/etc/shadow中 所有的组名都记录在/etc/group中 二、文件类型和属性 三、文件和目录的权限管理 四、文件的类型 五、文件的拓展名 文件长度的限制

    2023年04月10日
    浏览(40)
  • Hadoop是一个开源的分布式处理系统,主要用于处理和存储大量数据

    Hadoop是一个开源的分布式处理系统,主要用于处理和存储大量数据。它是由Apache软件基金会开发的,现在已经成为大数据领域中广泛使用的技术之一。 Hadoop架构 Hadoop的架构包括以下几个主要组件: Hadoop Distributed File System (HDFS) : HDFS是Hadoop的核心组件之一,它是一个分布式文

    2024年02月04日
    浏览(42)
  • uniapp通过custom-tab-bar 自定义tabbar导航栏(主要用于微信小程序)

    这个自定义的tabbar是用于微信小程序方面的 开始: uniapp文档搜索自定义tabbar,并找到这个 第一步: 根目录创建 custom-tab-bar 文件,并在page.json文件里面tabbar设置项中添加 custom 属性,并设置为 true,list数组不要清空,把你得tabbar页面也写上去,他需要和你得自定义得tabbar那个数组对照

    2024年04月09日
    浏览(47)
  • export 是一个在 Unix 和类 Unix 系统(比如 Linux 和 macOS)中常用的 shell 命令,主要用于设置或导出环境变量。

    export 是一个在 Unix 和类 Unix 系统(比如 Linux 和 macOS)中常用的 shell 命令,主要用于设置或导出环境变量。环境变量是在操作系统中用于存储系统设置和命令行程序配置的全局值。下面提供了一些 export 命令的基本用法和示例。 基本用法 设置环境变量 : 这里, VARIABLE_NAME 是

    2024年01月19日
    浏览(36)
  • OpenJDK 主要版本 介绍

            OpenJDK是Java SE平台的开源和免费实现,由Oracle和其他公司和个人共同维护。OpenJDK的代码库是Oracle JDK的基础,因此两者在很多方面都非常相似。OpenJDK的主要版本包括OpenJDK 8、OpenJDK 11、OpenJDK 14、OpenJDK 15、OpenJDK 16等。下面将详细介绍这些主要版本及其特点。     

    2024年04月16日
    浏览(21)
  • C#进阶-用于Excel处理的程序集

    在.NET开发中,处理Excel文件是一项常见的任务,而有一些优秀的Excel处理包可以帮助开发人员轻松地进行Excel文件的读写、操作和生成。本文介绍了NPOI、EPPlus和Spire.XLS这三个常用的.NET Excel处理包,分别详细介绍了它们的特点、示例代码以及使用方法。通过对这些程序集的比较

    2024年03月20日
    浏览(34)
  • 2023-08-15 Untiy进阶 C#知识补充5——C#6主要功能与语法

    ​ 注意:在此仅提及 Unity 开发中会用到的一些功能和特性,对于不适合在 Unity 中使用的内容会忽略。 一、概述 ​ C#6 的新增功能和语法主要包含: =运算符(C# 进阶内容) Null 传播器(C# 进阶内容) 字符串内插(C# 进阶内容) 静态导入 异常筛选器 nameof 运算符 二、静态导

    2024年02月12日
    浏览(26)
  • 2023-08-04 Untiy进阶 C#知识补充4——C#5主要功能与语法

    ​ 注意:在此仅提及 Unity 开发中会用到的一些功能和特性,对于不适合在 Unity 中使用的内容会忽略。 一、概述 C# 5 调用方信息特性(C# 进阶内容) 异步方法 async 和 await 二、回顾——线程 Unity 支持多线程 Unity 中开启的多线程不能使用主线程中的对象 Unity 中开启多线程后一

    2024年02月14日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包