C# 文件操作

news/2024/4/27 15:31:45/文章来源:https://blog.csdn.net/weixin_44686958/article/details/136928141

文章目录

  • C# 文件操作
    • 创建文件
      • 运行结果
    • 写入文件
      • 程序文件
      • 运行结果
    • WriteAllLines-写入多行
      • 运行结果
    • 追加字符串
      • 运行结果
      • 追加多行字符串
    • 读取文件
      • ReadAllText
        • 运行结果
      • ReadAllLines-用数组接收读取的内容
        • 运行结果
      • 采用流(Stream)的方式来读取内容
        • 运行结果
    • 复制文件
      • 运行结果
    • 移动文件
      • 运行结果
    • 删除文件
      • 运行结果

C# 文件操作

创建文件

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp2
{class Test{int result;Test(){result = 0;}public void division(int num1,int num2){try{result = num1 / num2;}catch(DivideByZeroException e){Console.WriteLine("Exception caught:{0}", e);}finally{Console.WriteLine("Result:{0}", result);}}static void Main(string[] args){try{string filePath = @"E:\File.txt";FileStream fileStream = File.Create(filePath);fileStream.Close();}catch (Exception e){Console.WriteLine("文件创建失败:" + e.Message);}Console.WriteLine("文件创建成功");Console.ReadLine();}}}

运行结果

在这里插入图片描述

写入文件

写入文件可以使用下面方式:

  1. File.WriteAllText(FilePath,String)
  2. File.WriteAllText(FilePath, String,Encoding) ----指定编码
  3. File.WriteAllLines(FilePath,String[])
  4. File.WriteAllLines(FilePath,String[],Encoding) ----指定编码
    前面两种写入的是一个字符串,后面两种写入的是一个字符串数组。

使用 File.WriteAllText 或 File.WriteAllLines 方法时,如果指定的文件路径不存在,会创建一个新文件;如果文件已经存在,则会覆盖原文件。

程序文件

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp2
{class Test{int result;Test(){result = 0;}static void Main(string[] args){string filePath = @"E:\File.txt";string content = "记事本记事本记事本";File.WriteAllText(filePath, content, Encoding.UTF8);Console.ReadLine();}}}

运行结果

在这里插入图片描述

WriteAllLines-写入多行

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp2
{class Test{static void Main(string[] args){string filePath = @"E:\File.txt";//string content = "记事本记事本记事本";string[] contentStr = { "aaaaaaa", "bbbbbbbbbb" };File.WriteAllLines(filePath, contentStr, Encoding.UTF8);Console.ReadLine();}}}

运行结果

在这里插入图片描述
上面写入字符串都会覆盖原有的内容,下面就介绍如何追加字符串。

追加字符串

第一次执行:
在这里插入图片描述

运行结果

在这里插入图片描述

在这里插入图片描述

字符串追加成功:
在这里插入图片描述
如果要换行,就加上\n即可:
在这里插入图片描述
追加成功:
在这里插入图片描述

追加多行字符串

使用 File.AppendAllLines 来添加多行文字。

在这里插入图片描述
追加在后面了:
在这里插入图片描述

读取文件

ReadAllText

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp2
{class Test{static void Main(string[] args){string filePath = @"E:\File.txt";string content = File.ReadAllText(filePath, Encoding.UTF8);Console.WriteLine(content);Console.ReadLine();}}
}
运行结果

在这里插入图片描述

ReadAllLines-用数组接收读取的内容

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp2
{class Test{static void Main(string[] args){string filePath = @"E:\File.txt";//string content = File.ReadAllText(filePath, Encoding.UTF8);string[] content = File.ReadAllLines(filePath, Encoding.UTF8);for (int i = 0; i < content.Length; i++){Console.WriteLine(content[i]);}Console.ReadLine();}}
}
运行结果

在这里插入图片描述

采用流(Stream)的方式来读取内容

1.StreamReader(FilePath)
2.StreamReader(FilePath, Encoding)
3.StreamReader(FileStream)
4.StreamReader(FileStream, Encoding)
5.File.OpenText(FilePath)
6.FileInfo.OpenText()
基于StreamReader,一行一行读取

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp2
{class Test{static void Main(string[] args){string filePath = @"E:\File.txt";FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.None);StreamReader sr4 = new StreamReader(fs, Encoding.UTF8);string line = string.Empty;while ((line = sr4.ReadLine()) != null){Console.WriteLine(line);}sr4.Close();Console.ReadLine();}}
}
运行结果

在这里插入图片描述

复制文件

要复制文件,可以使用System.IO.File.Copy()方法。该方法接受源文件路径和目标文件路径作为参数,并将源文件复制到目标文件。如果目标文件已存在,则将会被覆盖。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp2
{class Test{static void Main(string[] args){string sourceFilePath = @"E:\File.txt";string destinationFilePath = @"E:\File_copy.txt";File.Copy(sourceFilePath, destinationFilePath);Console.ReadKey();}}
}

运行结果

在这里插入图片描述

移动文件

要移动文件,可以使用System.IO.File.Move()方法。该方法接受源文件路径和目标文件路径作为参数,并将源文件移动到目标文件。如果目标文件已存在,则将被覆盖。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp2
{class Test{static void Main(string[] args){string sourceFilePath = @"E:\File.txt";string destinationFilePath = @"D:\File.txt";File.Move(sourceFilePath, destinationFilePath);Console.ReadKey();}}
}

运行结果

在这里插入图片描述

删除文件

要删除文件,可以使用System.IO.File.Delete()方法。该方法接受文件路径作为参数,并将该文件从磁盘上删除。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp2
{class Test{static void Main(string[] args){string filePath = @"D:\File.txt";File.Delete(filePath);Console.ReadKey();}}
}

运行结果

文件被成功删除:
在这里插入图片描述

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

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

相关文章

stm32平衡车

目录 一.所需材料 二.PID算法&#xff08;简单说明&#xff09; 直立环 速度环 串级PID 三.使用到的外设 1.定时器输出比较-PWM 2.定时器编码器模式 3.编码器读取速度 4.电机驱动函数 5.外部中断 四、小车 调试 一.所需材料 1.陀螺仪MPU6050--读取三轴的加速度…

C++:梦的开始——创建第一个hello world(1)

我这里使用的编写代码的工具是Start Experimental Instance of Visual Studio 2022 你可以去微软的官网上寻找&#xff0c;并且安装 部署项目 项目就是一个文件夹&#xff0c;他将我们的数据都放到了里面&#xff0c;这就是一个项目 在Visual Studio 2022中 选择c 的空项目&a…

【Linux 08】进程概念

文章目录 &#x1f308; 01. 基本概念&#x1f308; 02. 描述进程 PCB&#x1f308; 03. 使用 ./ 的方式创建进程&#x1f308; 04. ps 查看进程&#x1f308; 05. getpid / getppid 获取进程标识符&#x1f308; 06. kill 终止指定进程&#x1f308; 07. fork 创建子进程&…

python学习14:python中的表达式

python中的表达式 1.表达式是什么呢&#xff1f; 表达式就是一个具有明确结果的代码语句&#xff0c;如11、type(‘字符串’)、3*5等 在定义变量的时候&#xff0c;如age108,等号右侧的就是表达式&#xff0c;也就是有具体的结果&#xff0c;将结果赋值给了等号左侧的变量 2.…

Linux 系统基础操作命令

当前市面上常见的系统&#xff1a;Windows、Linux、Mac OS、Android、IOS…… Linux 不太适合日常使用&#xff0c;但是非常适合用于开发。因此作为一个程序猿来说&#xff0c;Linux 都是务必要掌握的。 Linux 介绍 Linux 发行版 目前市面上比较知名的发行版有&#xff1a;R…

DNS隧道攻击

什么是DNS隧道&#xff1f; DNS隧道是一种网络通信技术&#xff0c;它利用DNS&#xff08;Domain Name System&#xff0c;域名系统&#xff09;协议来建立隐蔽的通信通道。在正常情况下&#xff0c;DNS协议主要用于将域名解析为IP地址&#xff0c;但攻击者可以通过构造特殊的…

总结 | vue3项目初始化(附相应链接)

如何运行 vue 项目&#xff1a;vscode运行vue项目_vscode启动vue项目命令-CSDN博客 vue3项目搭建 目录管理 git管理&#xff1a;vue3项目搭建并git管理_git 新建vue3项目-CSDN博客 目录调整&#xff1a;vue3项目 - 目录调整-CSDN博客 vscode中快速生成vue3模板&#xff1a…

实现能效升级 | 基于ACM32 MCU的冰箱压缩机变频方案

概述 冰箱制冷系统中最重要的部件是压缩机。它从吸气管吸入低温低压的制冷剂气体&#xff0c;通过电机运转带动活塞对其进行压缩后&#xff0c;向排气管排出高温高压的制冷剂气体&#xff0c;为整个制冷循环提供源动力。这样就实现了压缩→冷凝→膨胀→蒸发 ( 吸热 ) 的制冷循环…

并查集|1971. 寻找图中是否存在路径、684.冗余连接、685.冗余连接II

目录 并查集基础 1971. 寻找图中是否存在路径 684.冗余连接 685.冗余连接II 并查集基础 并查集主要有三个功能。 寻找根节点&#xff0c;函数&#xff1a;find(int u)&#xff0c;也就是判断这个节点的祖先节点是哪个将两个节点接入到同一个集合&#xff0c;函数&#xf…

项目中自动引入神器 - unplugin-auto-import/unplugin-vue-components

前端 项目中 自动引入 神器 前言 在开发中&#xff0c;我们总喜欢站在巨人的肩膀上开发&#xff0c;比如用一些 框架&#xff1a;vue,react, 组件库&#xff1a;element&#xff0c;ant。 工具函数&#xff1a;axios&#xff0c;lodash 现在是模块化时代&#xff0c;我们…

新手入门C语言之联合体和枚举

在上一篇文章中&#xff0c;我们了解到在C语言中&#xff0c;自定义类型有三种&#xff0c;这里我们介绍后两种&#xff0c;联合体和枚举。 一.联合体 1.联合体的声明 像结构体一样&#xff0c;联合体也是由一个或多个成员构成&#xff0c;这些成员的类型可以是不一样的&…

Go——结构体

Go语言中没有类的概念&#xff0c;也不支持类的继承等面向对象的概念。Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性。 一. 类型别名和自定义类型 1.1 自定义类型 在Go语言中有一些基本的数据类型&#xff0c;如string&#xff0c;整型&#xff0c;…

手机网页关键词视频爬虫采集软件可导出视频分享链接|视频无水印批量下载工具

全新音视频批量下载工具&#xff0c;为您解放视频管理烦恼&#xff01; 现如今&#xff0c;音上涌现出大量精彩的视频内容&#xff0c;但是要想高效地获取、管理和分享这些视频却是一件颇具挑战的事情。针对这一难题&#xff0c;我们自主研发了全新的音视频批量下载工具&#x…

数学建模体育建模和经济建模国防科大版

目录 6.体育中的数学建模 7.经济学问题中的数学建模 7.1.实物交换模型 7.2.边际效应 7.3.最佳消费选择模型 6.体育中的数学建模 体育科学的研究中&#xff0c;也有大量的数学建模问题&#xff0c;例如&#xff1a;棒球的最佳击球点问题、滑板滑雪赛道的设计、越野自行车比…

各种需要使用的方法-->vue/微信小程序/layui

各种需要使用的方法-->vue/微信小程序/layui 1、vue里样式不起作用的方法&#xff0c;可以通过deep穿透的方式2、 js获取本周、上周、本月、上月日期3、ArrayBuffer Blob 格式转换ArrayBuffer与Blob的区别ArrayBuffer转BlobBlob转ArrayBuffer需要借助fileReader对象 4、使用…

STM32使用滴答定时器实现delayms

在STM32上使用SysTick实现jiffies&#xff08;时间戳&#xff09;并且实现delay_ms 代码实现&#xff1a; volatile uint32_t jiffies 0; // 用于记录系统运行的jiffies数 void SysTick_Handler(void) {/* 每次SysTick中断&#xff0c;jiffies增加 */jiffies; }uint32_t tick…

如何利用生成式人工智能挑选合适的候选人?

在当今激烈的商业竞争中&#xff0c;招聘合适的人才是构建企业成功的基石。筛选和面试候选人是一个复杂且精细的过程&#xff0c;它不仅关系到职位的有效填补&#xff0c;更影响到企业的长期发展和团队建设。 选择合适候选人的重要性 选择合适的候选人就像寻找一片沙滩上的珍…

曲线生成 | 图解Reeds-Shepp曲线生成原理(附ROS C++/Python/Matlab仿真)

目录 0 专栏介绍1 什么是Reeds-Shepp曲线&#xff1f;2 Reeds-Shepp曲线的运动模式3 Reeds-Shepp曲线算法原理3.1 坐标变换3.2 时间翻转(time-flip)3.3 反射变换(reflect)3.4 后向变换(backwards) 4 仿真实现4.1 ROS C实现4.2 Python实现4.3 Matlab实现 0 专栏介绍 &#x1f5…

MP4如何把视频转MOV格式? MP4视频转MOV格式的技巧

在现代的数字媒体时代&#xff0c;视频格式转换成为了许多用户必须掌握的技能。特别是将MP4视频转换为MOV格式&#xff0c;这对于需要在Apple设备上播放或编辑视频的用户来说尤为重要。本文将详细介绍如何将MP4视频转换为MOV格式&#xff0c;帮助读者轻松应对不同设备和平台的需…

编程语言|C语言——C语言基本数据类型

前言 针对不同的数据&#xff0c;采取不同的存储方式和进行不同的处理。随着处理对象的复杂化&#xff0c;数据类型也要变得更丰富。数据类型的丰富程度直接反映了程序设计语言处理数据的能力。 C语言很重要的一个特点是它的数据类型十分丰富。因此&#xff0c;C语言程序数据处…