C#WPF中的实现读取和写入文件的几种方式

说明:C#中实现读取和写入的类根据需要来选择。

1、File类

        File类是用于操作文件的工具类,提供了对文件进行创建、复制、删除、移动和打开单一文件的静态方法。但需要注意的是,WPF中使用File的类,需要先引用System.IO下的命名空间。以下是System.IO中File类的一些主要方法和属性:

1.1 ReadAllText读取文件

通过调用File类的ReadAllText方法,可以直接将指定文件的所有文本内容读取到一个字符串中。

using System.IO;

//读取文本
string filePath = @"C:\Users\Administrator\Desktop\1.txt";
string content = File.ReadAllText(filePath);
Console.WriteLine(content);

1.2 WriterAllText写入文件

通过调用File类的WriteAllText方法,可以将指定的文本内容写入到文件中,如果文件已存在则会覆盖原有内容。

using System.IO;

//吸入文本
string filePath = @"C:\Users\Administrator\Desktop\1.txt";
string content = "这是一段要写入文件的文本。";
File.WriteAllText(filePath, content);

1.3 Create 创建文件

通过调用File类的Create方法可以创建一个新的文件,然后关闭文件流以确保文件资源被释放。

using System.IO;

string filePath = @"C:\Users\Administrator\Desktop\2.txt";
if (File.Create(filePath).Close())
{
    Console.WriteLine("文件创建成功");
}
else
{
    Console.WriteLine("文件创建失败");
}

1.4 查阅Fille类其他的方法

更多方法见官方使用说明:File 类 (System.IO) | Microsoft Learn

2、StreamWriter文本写入

System.IO.StreamWriter是C#中的一个类,用于将文本写入到文件中。它提供了一些方法来设置文件的编码、缓冲区大小等属性,以及一些方法来写入文本和关闭文件。

以下是一些主要的方法和属性:

  1. 构造函数:StreamWriter(string path) - 创建一个StreamWriter对象,用于将文本写入到指定的文件中。

  2. Write(string text) - 将指定的字符串写入到文件中。

  3. WriteLine(string text) - 将指定的字符串写入到文件中,并在末尾添加一个换行符。

  4. Flush() - 清空缓冲区,并将数据写入到文件中。

  5. Close() - 关闭文件,并释放与该文件关联的所有资源。

  6. AutoFlush - 一个布尔值,表示是否在每次调用Write或WriteLine方法时自动刷新缓冲区。默认值为true。

  7. Encoding - 一个Encoding对象,表示要使用的字符编码。默认值为System.Text.Encoding.Default。

  8. IndentSize - 一个整数,表示缩进的大小。默认值为0。

  9. NewLine - 一个字符串,表示新行的字符。默认值为"

using System;
using System.IO;

class Program
{
    static void Main()
    {
        // 创建一个StreamWriter对象,用于将文本写入到"output.txt"文件中
        using (StreamWriter writer = new StreamWriter("output.txt"))
        {
            // 写入一行文本
            writer.WriteLine("Hello, World!");

            // 写入多行文本
            writer.WriteLine("This is a test.");
            writer.WriteLine("StreamWriter is useful for writing text to files.");

            // 刷新缓冲区,并将数据写入到文件中
            writer.Flush();
        }
    }
}

3、StreamReader 读取文本

System.IO.StreamReader是C#中的一个类,用于从文件中读取文本。它提供了一些方法来设置文件的编码、缓冲区大小等属性,以及一些方法来读取文本和关闭文件。

以下是一些主要的方法和属性:

  1. 构造函数:StreamReader(string path) - 创建一个StreamReader对象,用于从指定的文件中读取文本。

  2. Read() - 读取一个字符,并返回其Unicode值。如果已经到达文件末尾,则返回-1。

  3. ReadLine() - 读取一行文本,直到遇到换行符或文件末尾。

  4. Close() - 关闭文件,并释放与该文件关联的所有资源。

  5. AutoClose - 一个布尔值,表示是否在读取完文件后自动关闭文件。默认值为true。

  6. Encoding - 一个Encoding对象,表示要使用的字符编码。默认值为System.Text.Encoding.Default。

  7. BaseStream - 一个Stream对象,表示底层的流。可以通过这个属性访问底层的流,例如FileStream或MemoryStream。

using System;
using System.IO;

class Program
{
    static void Main()
    {
        // 创建一个StreamReader对象,用于从"input.txt"文件中读取文本
        using (StreamReader reader = new StreamReader("input.txt"))
        {
            // 读取一行文本
            string line = reader.ReadLine();
            while (line != null)
            {
                Console.WriteLine(line);
                line = reader.ReadLine();
            }
        }
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

从零开始:打造疫苗预约抖音小程序的技术指南

这篇文章小编将与大家一同探讨如何开发一款疫苗预约的抖音小程序。 第一步:项目准备和规划 确定用户需要提供的信息,例如个人信息、接种地点偏好等。同时,考虑系统的用户界面设计,确保用户友好性和易用性。 第二步:…

验证k8s中HPA功能及测试

部署 使用yaml部署服务 apiVersion: apps/v1 kind: Deployment metadata:name: php-apachenamespace: tools spec:replicas: 1selector:matchLabels:app: php-apachetemplate:metadata:labels:app: php-apachespec:containers:- name: php-apacheimage: registry.cn-beijing.…

基于SpringBoot+Vue的新能源汽车充电桩管理系统

基于SpringBootVue的新能源汽车充电桩管理系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringBootMyBatisVue工具:IDEA/Ecilpse、Navicat、Maven 系统展示 主页 充电桩详情 管理员界面 摘要 本项目是基于Spring Boot 和 …

百数低代码——为教育行业打开数字化转型之路

教育一直是人类社会发展与进步的基石,也是国之大计。教育既需要满足“千人千面”的获取知识需求,又需要保证教育本身的质量,因此教育培训方式一直在改变。 而如今,大数据、人工智能等新一代信息技术推动着传统教育向数字化教育发展…

event事件分发器||静态类型转换

由于类型不一样在event事件分发器中要进行静态类型转换,将基类转换为派生类进行处理 对event事件分发器拦截后最后要将其他函数交给父类处理,否则不会运行

Docker与VM虚拟机的区别以及Docker的特点

01、本质上的区别 VM(VMware)在宿主机器、宿主机器操作系统的基础上创建虚拟层、虚拟化的操作系统、虚拟化的仓库,然后再安装应用; Container(Docker容器),在宿主机器、宿主机器操作系统上创建Docker引擎,在引擎的基础上再安装应…

Java GUI实现贪吃蛇游戏

贪吃蛇是一款经典的游戏,玩法相对简单但富有挑战性。以下是贪吃蛇游戏的基本玩法说明: 目标:控制一条蛇,在游戏区域内吃到尽可能多的食物,使蛇身变长,同时避免撞到自己的身体或游戏区域的边界。 控制&…

Apache ActiveMQ RCE

影响版本 Apache ActiveMQ < 5.18.3 利用条件 需要访问到61616端口(默认)。 漏洞分析 这里需要的是Apache ActiveMQ < 5.18.3,我这里直接下的5.18.2 https://github.com/apache/activemq/commit/958330df26cf3d5cdb63905dc2c6882e98781d8f 在新版本中添加了一个Ope…

YOLO目标检测——钢表面缺陷检测数据集下载分享【含对应voc、coco和yolo三种格式标签】

实际项目应用&#xff1a;钢材质量控制、钢材缺陷检测数据集说明&#xff1a;钢表面缺陷检测数据集&#xff0c;真实场景的高质量图片数据&#xff0c;数据场景丰富标签说明&#xff1a;使用lableimg标注软件标注&#xff0c;标注框质量高&#xff0c;含voc(xml)、coco(json)和…

AdServices归因和iAd归因集成

AdServices framework 是 Apple 专门为 ASA 提供的归因框架 。尤其在ATT 政策推出以后&#xff0c;app 获取用户 IDFA 的比例大幅降低&#xff0c;传统的依靠IDFA 的方法也无法准确归因。 但是 Apple 为 ASA 开了一个后门&#xff0c;其他广告渠道无法获取用户的 IDFA 作为身份…

【读点论文】FMViT: A multiple-frequency mixing Vision Transformer-期待源码

FMViT: A multiple-frequency mixing Vision Transformer Abstract transformer模型近年来在计算机视觉任务中得到了广泛的应用。然而&#xff0c;由于自关注的时间和内存复杂度是二次的&#xff0c;并且与输入token的数量成正比&#xff0c;大多数现有的(Vision transformer,…

性能测试【第三篇】Jmeter的使用

线程数:10 ,设置10个并发 Ramp-Up时间(秒):所有线程在多少时间内启动,如果设置5,那么每秒启动2个线程 循环次数:请求的重复次数,如果勾选"永远"将一直发送请求 持续时间时间:设置场景运行的时间 启动延迟:设置场景延迟启动时间 响应断言 响应断言模式匹配规则 包括…

进程间通信

进程间通信 是什么&#xff1f; 两个或者多个进程实现数据层面的交互 为什么&#xff1f; 怎么办&#xff1f; a.进程间通信的本质:必须让不同的进程看到同一份"资源" b."资源"就是特定形式的内存空间 c.这个"资源"谁提供?一般是操作系统&…

EtherCAT从站EEPROM分类附加信息详解:SM(同步管理器)

0 工具准备 1.EtherCAT从站EEPROM数据&#xff08;本文使用DE3E-556步进电机驱动器&#xff09;1 分类附加信息——SM&#xff08;同步管理器&#xff09; 1.1 分类附加信息规范 在EEPROM字64开始的区域存储的是分类附加信息&#xff0c;这里存储了包括设备信息、SM配置、FM…

小程序如何添加打印机来打印订单

在采云小程序中&#xff0c;支持打印订单的小票、标签、发货单和电子面单。小票打印机用于打印小票&#xff0c;类似于超市小票、外卖小票等。标签打印机用于打印商品标签&#xff0c;类似于奶茶上面粘贴的标签&#xff0c;用于表示饮料名称和规格等。货单打印机用于打印发货单…

关于 内部类 你了解多少?(详解!!)

目录 1. 什么是内部类&#xff1f; 2. 内部类的分类 3. 内部类 3.1 实例内部类 3.2 静态内部类 4. 局部内部类 5. 匿名内部类 6.对象的打印 “不积跬步无以至千里&#xff0c;不积小流无以成江海。”每天坚持学习&#xff0c;哪怕是一点点&#xff01;&#xff01;&a…

sqlserver配置管理器无法启动解决方案

在SQL server configuration manager配置管理器中遇到SQL server browser呈灰色&#xff0c;无法启动 右击选择属性 进入服务 将启动模式改为自动 可以启动了

Java面向对象2

代码块 代码块的构造顺序优先于构造器 细节

redis运维(七)基础通用命令

一 基础通用命令 备注&#xff1a; 与具体数据类型无关Tab键 自动补全补充&#xff1a; redis 命令是不区分大小写 通用不到 10 个提升逼格的 redis 命令 后续&#xff1a; slowlog、rename-command、monitor、set ① help command 需求&#xff1a; 显示有关redis命令的…

DVWA - 4

文章目录 JavaScriptlowmedium JavaScript 前端攻击。token 不能由前端生成&#xff0c;js 很容易被攻击者获取&#xff0c;从而伪造 token。同样其他重要的参数也不能由前端生成。 low 不修改输入&#xff0c;点击提交报错: 根据提示改成 success&#xff0c;还是报错&…