C#知识|文件与目录操作:对象的创建、保存、读取

news2024/11/15 21:46:47

哈喽,你好啊,我是雷工!

面向对象编程的特点就是一切皆对象,操作的也是对象,本节学习文件与目录操作中,对象的保存;

以下为学习笔记。

01 对象的特点

①:对象运行在内存中,程序关闭时,这些对象也会被CLR的垃圾回收机制销毁。

②:程序再次运行时,对象会重新创建运行,无法保留上次对象的运行状态。

③:如果想要程序运行时能继续上次运行时对象的状态,那么应用程序就需要将对象的各个属性值保存到磁盘文件中,这样再次运行时直接从磁盘文件中获取设置对象的各个属性值即可,常用的方法就是使用文本文件保存对象的各个属性值。

02 使用文件保存对象状态

2.1、实现功能

①:把用户信息封装为对象的属性,保存在文本中。

②:把文本的信息还原成对象的属性,然后显示出来。

2.2、效果演示

①写入文本文件

②从文本文件中读取

03 实现步骤

3.1、引入命名空间

using System.IO;

3.2、写入文本文件

实现思路:

①:封装数据;

②:创建文件流;

③:创建写入器;

④:以流的方式将封装的数据一行一行写入;

⑤:关闭写入器;

⑥:关闭文件流;

实现代码:

//写入文本文件

private void btnWriteTxt_Click(object sender, EventArgs e)

{

    Account objAccount = new Account()

    {

Name = this.txtName.Text.Trim(),

Owner=this.txtOwner.Text.Trim(),

Duration=Convert.ToInt32(this.txtDuration.Text.Trim()),

DataRed=Convert.ToDateTime(this.txtDataRed.Text.Trim())

    };

    //保存到文件里面

    FileStream fs = new FileStream("objAccount.obj", FileMode.Create);

    StreamWriter sw = new StreamWriter(fs);

    sw.WriteLine(objAccount.Name);

    sw.WriteLine(objAccount.Owner);

    sw.WriteLine(objAccount.Duration);

    sw.WriteLine(objAccount.DataRed);

    sw.Close();

    fs.Close();

}

3.3、从文本文件中读取

实现思路:

①:创建文件流;

②:创建读取器;

③:一行一行的以流的形式将数据读取到对象;

④:关闭读取器;

⑤:关闭文件流;

⑥:显示对象中的数据;

实现代码:

//从文本文件中读取

private void btnReadtxt_Click(object sender, EventArgs e)

{

    FileStream fs = new FileStream("objAccount.obj", FileMode.Open);

    StreamReader sr = new StreamReader(fs);

    Account objAccount = new Account()

    {

    Name = sr.ReadLine(),

    Owner = sr.ReadLine(),

    Duration = Convert.ToInt32(sr.ReadLine()),

    DataRed = Convert.ToDateTime(sr.ReadLine())

    };

    sr.Close();

    fs.Close();

    this.txtName.Text = objAccount.Name;

    this.txtOwner.Text = objAccount.Owner;

    this.txtDuration.Text = objAccount.Duration.ToString();

    this.txtDataRed.Text = objAccount.DataRed.ToShortDateString();

}

04 后记

以上为文件与目录操作中对象的形式写入与读取的实现,但这种方式如果文件不是通过本程序写入的,在读取时容易出现顺序上的错误,下面练习针对该问题的解决办法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1975736.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

4.5K Stars!为 RAG 而生的数据工程神器

—1 大模型 RAG 的难题是什么? RAG 或者 Fine-tuning 微调作为大模型的增强技术,最核心的技术在于如何把企业的私有数据清洗转换成知识,企业中能够第一时间拿到的私有数据,往往是异构的、数据质量参差不齐,通过数据…

ICM-20948芯片详解(3)

接前一篇文章:ICM-20948芯片详解(2) 三、引脚图、信号描述及内部框图 1. 引脚图 ICM-20948的引脚图如下图所示: 2. 引脚详细描述 ICM-20948的引脚详细描述如下表所示: 注意:不支持在SCL/SCLK和nCS引脚保…

Linux系统窗口水印难点分析

给应用程序加水印是保护数据的一种方式,window上可以通过给进程通过注入的方法给进程的窗口创建一个同大小的副窗口,在副窗口上绘制水印内容,同时设置副窗口透明同时透传事件,这样就可以达到在源窗口上显示水印的效果且不影响程序…

易媒助手:神似融媒宝的自媒体运营工具,新人送7天中级VIP

自媒体运营工具中还有一个易媒助手,功能与融媒宝、蚁小二类似,免费用户可发5个账号,三者同时用就可发15个账号了,所以今天也给大家介绍下: 易媒助手简介 易媒助手于2017年开发,致力于成为中国更优秀的新媒…

springboot集成海康SDK,设备抓图,热成像仪设置多个点代码获取,以及针对红外图点击某一点获取该点温度的需求

本文会介绍java对海康sdk的三个功能: 1、用代码实时抓图 2、用代码获取热成像仪21个点的坐标及其实时温度 3、针对海康热成像仪抓取的热图能够随便点击任意一个点就能获取其温度的功能。 第一个功能,抓图 抓图 在海康提供的sdk中取流后抓图调用的是 …

ollama运行阿里云通义千问72B大模型

准备 安装ollama https://github.com/ollama/ollama 模型 合并gguf copy /B qwen2-72b-instruct-q5_k_m-00001-of-00002.gguf qwen2-72b-instruct-q5_k_m-00002-of-00002.gguf qwen2-72b-instruct-q5_k_m.gguf设置并启动 新建Modelfile FROM ./qwen2-72b-instruct-q5_k…

【课程总结】Day18:Seq2Seq的深入了解

前言 在上一章【课程总结】Day17(下):初始Seq2Seq模型中,我们初步了解了Seq2Seq模型的基本情况及代码运行效果,本章内容将深入了解Seq2Seq模型的代码,梳理代码的框架图、各部分组成部分以及运行流程。 框…

想做linux内核开发,该怎么开始(上)

作为一名应届生在选择从事 Linux 内核开发这一职业领域时,需要系统地规划自己的职业道路,这将有助于你更准确地了解未来的发展方向并制定相应的学习和职业发展计划。在这篇文章中,我将向你介绍应届生在 Linux 内核开发领域的职业道路规划&…

O’Reilly

--江上往来人,但爱鲈鱼美。 --君看一叶舟,出没风波里。 OReilly OReilly出版社出版的技术类图书 俗称动物系列 应该是每个技术人员的必备手册。 OReilly动物系列(中译本) 简介" 动物系列作为 OReilly 书籍的典型代表被普遍…

【Apache Doris】周FAQ集锦:第 18 期

【Apache Doris】周FAQ集锦:第 18 期 SQL问题数据操作问题运维常见问题其它问题关于社区 欢迎查阅本周的 Apache Doris 社区 FAQ 栏目! 在这个栏目中,每周将筛选社区反馈的热门问题和话题,重点回答并进行深入探讨。旨在为广大用户…

基于级联深度学习算法在双参数MRI中检测前列腺病变的评估| 文献速递-AI辅助的放射影像疾病诊断

Title 题目 Evaluation of a Cascaded Deep Learning–based Algorithm for Prostate Lesion Detection at Biparametric MRI 基于级联深度学习算法在双参数MRI中检测前列腺病变的评估 Background 背景 Multiparametric MRI (mpMRI) improves prostate cancer (PCa) dete…

如何对我们要多次使用的页面进行一个抽取

有的时候,一个页面我们要多次使用,该怎么抽取呢? 创建一个文件夹,用于存放多次使用的页面 将要多次使用的组件(<template>)和风格(<style>)剪切出来,放入新建的页面 直接进行引用 导入 然后就可以使用

【FPGA设计】Vitis AI概述

一. Vitis AI简介 Vitis AI 是由 Xilinx&#xff08;现已被 AMD 收购&#xff09;提供的一套工具链和软件开发平台&#xff0c;用于简化和加速在基于 Xilinx FPGA 或自适应计算加速平台 (ACAP) 上部署深度学习推理应用的过程。Vitis AI 的目标是让开发者能够更容易地利用 FPGA…

python-素数回文数的个数(赛氪OJ)

[题目描述] 求 11 到 n 之间&#xff08;包括 n&#xff09;&#xff0c;既是素数又是回文数的整数有多少个。输入&#xff1a; 一个大于 11 小于 10000 的整数 n。输出&#xff1a; 11 到 n 之间的素数回文数个数。样例输入1 23 样例输出1 1 提示&#xff1a; 回文数指左右对…

【Python 逆向滑块】(实战五)逆向滑块,并实现用Python+Node.js 生成滑块、识别滑块、验证滑块、发送短信

逆向日期&#xff1a;2024.08.03 使用工具&#xff1a;Python&#xff0c;Node.js 本章知识&#xff1a;滑块距离识别&#xff0c;滑块轨迹生成&#xff0c;验证滑块并获取【validate】参数 文章难度&#xff1a;中等&#xff08;没耐心的请离开&#xff09; 文章全程已做去敏处…

MySQL:初识数据库初识SQL建库

目录 1、初识数据库 1.1 什么是数据库 1.2 什么是MySQL 2、数据库 2.1 数据库服务&数据库 2.2 C/S架构 3、 初识SQL 3.1 什么是SQL 3.2 SQL分类 4、使用SQL 4.1 查看所有数据库 4.1.2 语句解析 4.2 创建数据库 4.2.1 if not exists校验 4.2.2 手动明确字符集…

新款奔驰S450升级动态按摩座椅有哪些功能

奔驰 S450 升级前排动态按摩座椅通常具有以下功能&#xff1a; 1. 多种按摩模式和强度选择&#xff1a;通过精心设计的气囊和机械装置&#xff0c;能够模拟如揉捏、敲击、推拿等不同的按摩手法&#xff0c;为驾驶者和前排乘客舒缓肌肉疲劳&#xff0c;放松身心。 2. 广泛的按…

本地部署文生图模型 Flux

本地部署文生图模型 Flux 0. 引言1. 本地部署1-1. 创建虚拟环境1-2. 安装依赖模块1-3. 创建 Web UI1-4. 启动 Web UI1-5. 访问 Web UI 0. 引言 2024年8月1日&#xff0c;blackforestlabs.ai发布了 FLUX.1 模型套件。 FLUX.1 文本到图像模型套件&#xff0c;该套件定义了文本到…

2024年最有效的谷歌外链技巧!

在2024年&#xff0c;谷歌外链的战略在谷歌SEO领域依然占据重要地位。有效的外链战略不仅仅依赖于数量&#xff0c;更注重质量和结构的多样性。以下是一些最有效的策略 1.多样化的链接结构&#xff1a; 排名靠前的网站通常拥有复杂多元的外链结构。这意味着他们的链接来自不同…