C#学习笔记(十三):I/O操作

C#的IO操作主要是针对文件夹和文件的读取和写入操作,下面我们来学习一下相关操作的类。

获取文件信息

Directory和DirectoryInfo

两个类的功能基本相同,区别如下:

  1. 前者继承System.Object,后者继承抽象类FileSystemInfo;
  2. 前者是静态类,后者是非静态类,需要new创建实例;
  3. 前者返回的类型是简单字符串,后者返回的是强类型如FileInfo;

File和FileInfo

区别和Directory一致,下面给出帮助文档,具体的使用方法可以查看帮助:

https://msdn.microsoft.com/zh-cn/library/system.io(v=vs.110).aspx

读取文件

下面给出一个简单的读取文件的例子:

 1 using System;
 2 using System.IO;
 3 
 4 namespace Study
 5 {
 6     class Program
 7     {
 8         static void Main(string[] args)
 9         {
10             if (!File.Exists("test.txt"))
11             {
12                 Console.WriteLine("文件不存在!");
13                 Console.Read();
14                 return;
15             }
16 
17             using (StreamReader streamReader = File.OpenText("test.txt"))
18             {
19                 string line;
20                 while ((line = streamReader.ReadLine()) != null)
21                 {
22                     Console.WriteLine(line);
23                 }
24                 streamReader.Close();
25             }
26 
27             Console.Read();
28         }
29     }
30 }

写入文件

下面给出一个简单的写入文件的例子:

 1 using System;
 2 using System.IO;
 3 
 4 namespace Study
 5 {
 6     class Program
 7     {
 8         static void Main(string[] args)
 9         {
10             using (FileStream fileStream = File.Open("test.txt", FileMode.OpenOrCreate))
11             {
12                 TextWriter textWriter = new StreamWriter(fileStream);
13                 textWriter.WriteLine("Hello Li Lei,");
14                 textWriter.WriteLine("I`m Han Meimei.");
15                 textWriter.Flush();
16 
17                 fileStream.Close();
18             }
19 
20             Console.Read();
21         }
22     }
23 }

FileHelper

为了简化文件的读写操作,我写了一个工具类放到我的开源工程下,有需要得朋友可以直接使用:

https://github.com/hammerc/hammerc-framework-unity3d/blob/master/unitysource/4.x/Assets/HammercLib/Utils/FileHelper.cs

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

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

相关文章

工作几年了,原来我只用了数据校验的皮毛

今天介绍一下 Spring Boot 如何优雅的整合JSR-303进行参数校验,说到参数校验可能都用过,但是你真的会用吗?网上的教程很多,大多是简单的介绍。什么是 JSR-303?JSR-303 是 JAVA EE 6 中的一项子规范,叫做 Be…

scala 字符串转换数组_如何在Scala中将十六进制字符串转换为字节数组?

scala 字符串转换数组Hex String in Scala denotes value in hexadecimal number system i.e. base 16 number system. Scala中的十六进制字符串表示以十六进制数表示的值,即以16进制数表示的系统。 Example: 例: hexString "32AF1"Byte Ar…

【MATLAB】无人驾驶车辆的模型预测控制技术(精简讲解和代码)【运动学轨迹规划】

文章目录<font color#19C>0.友情链接<font color#19C>1.引言<font color#19C>2.预测模型<font color#19C>3.滚动优化<font color#08CF>3.1.线性化3.2.UrU_rUr​的求取<font color#08CF>3.3.离散化与序列化<font color#08CF>3.4.实现…

顶级Javaer,常用的 14 个类库

作者&#xff1a;小姐姐味道&#xff08;微信公众号ID&#xff1a;xjjdog&#xff09;昨天下载下来Java16尝尝鲜。一看&#xff0c;好家伙&#xff0c;足足有176MB大。即使把jmc和jvisualvm给搞了出去&#xff0c;依然还是这么大&#xff0c;真的是让人震惊不已。但即使JDK足够…

单层神经网络线性回归_单层神经网络| 使用Python的线性代数

单层神经网络线性回归A neural network is a powerful tool often utilized in Machine Learning because neural networks are fundamentally very mathematical. We will use our basics of Linear Algebra and NumPy to understand the foundation of Machine Learning usin…

用express、mongodb、nodejs开发简单的登陆

原文http://my.oschina.net/chenhao901007/blog/312367 npm i -g express serve-favicon morgan cookie-parser body-parser kerberos mongoose(注意:kerberos不安装&#xff0c;mongoose会卡住)2. 调试下面讲讲如何调试服务器端的代码&#xff1a;我们最好借助一个叫node-insp…

Lua元表(Metatable)简易教程

文章目录0.友情链接1.引言2.创建一个元表2.1.__tostring方法2.2.__add和__mul方法2.3.__index方法2.4.__call方法3.完整代码0.友情链接 GitHUb上下载Lua编译器Lua菜鸟教程中的元表介绍&#xff08;较全&#xff0c;但功能性受限&#xff09;博客园内元表的介绍&#xff08;较详…

面试官:说一下 final 和 final 的 4 种用法?

作者 | 王磊来源 | Java中文社群&#xff08;ID&#xff1a;javacn666&#xff09;转载请联系授权&#xff08;微信ID&#xff1a;GG_Stone&#xff09;重要说明&#xff1a;本篇为博主《面试题精选-基础篇》系列中的一篇&#xff0c;查看系列面试文章请关注我。Gitee 开源地址…

ruby 将字符串转为数组_Ruby程序将数组打印为字符串

ruby 将字符串转为数组将数组打印为字符串 (Printing an array as string) Given an array and we have to print it as a string in Ruby. 给定一个数组&#xff0c;我们必须在Ruby中将其打印为字符串。 Ruby provides you various alternatives for the single problem. The…

超定方程组的最小二乘解

\qquad看了很多关于最小二乘解的博客&#xff0c;事实上都没有找到自己想要的证明过程&#xff0c;后来学了矩阵函数时才彻底搞明白了这件事情&#xff0c;所以和大家简单分享如下&#xff1a; \qquad已知矩阵Amn(m&#xff1e;n)A_{mn}(m&#xff1e;n)Amn​(m&#xff1e;n)是…

面试官:int和Integer有什么区别?为什么要有包装类?

作者 | 磊哥来源 | Java面试真题解析&#xff08;ID&#xff1a;aimianshi666&#xff09;转载请联系授权&#xff08;微信ID&#xff1a;GG_Stone&#xff09;重要说明&#xff1a;本篇为博主《面试题精选-基础篇》系列中的一篇&#xff0c;查看系列面试文章请关注我。Gitee 开…

shell从小做起:将100以内整除3的数列出来

#!/bin/bash for i in $(seq 1 100) do a$[ $i%3 ] #注&#xff1a; 在取余的时候 需要 运算 所以需要加运算符号 $[ ] if [ $a -eq 0 ]; thenecho "$i" fi done转载于:https://blog.51cto.com/286577399/1676501

c# 用空格分割字符串_C#| 左用空格填充字符串

c# 用空格分割字符串PadLeft() method is a library method of the String class. It is used to pad the string from the left side with spaces. PadLeft()方法是String类的库方法。 它用于从左侧用空格填充字符串。 Syntax: 句法&#xff1a; string string.PadLeft(int …

innodb是如何存数据的?yyds

前言如果你使用过mysql数据库&#xff0c;对它的存储引擎&#xff1a;innodb&#xff0c;一定不会感到陌生。众所周知&#xff0c;在mysql5以前&#xff0c;默认的存储引擎是&#xff1a;myslam。但mysql5之后&#xff0c;默认的存储引擎已经变成了&#xff1a;innodb&#xff…

【MATLAB】卡尔曼滤波器的原理及仿真(初学者专用)

文章目录0.引言1.场景预设2.卡尔曼滤波器3.仿真及效果0.引言 \qquad本文参考了Matlab对卡尔曼滤波器的官方教程及帮助文档&#xff08;Kalman Filter&#xff09;。官方教程的B站链接如下&#xff0c;在此对分享资源的Up主表示感谢。(如不能正常播放或需要看中文字幕&#xff0…

Go实现查找目录下(包括子目录)替换文件内容

为什么80%的码农都做不了架构师&#xff1f;>>> 【功能】 按指定的目录查找出文件&#xff0c;如果有子目录&#xff0c;子目录也将进行搜索&#xff0c;将其中的文件内容进行替换。 【缺陷】 1. 没有过滤出文本文件 2. 当文件过大时&#xff0c;效率不高 【代码】…

卡诺模板_无关条件的卡诺地图

卡诺模板Till now, the Boolean expressions which have been discussed by us were completely specified, i.e., for each combination of input variable we have specified a minterm by representing them as 1 in the K-Map. But, there may arise a case when for a giv…

面试官:final、finally、finalize 有什么区别?

作者 | 磊哥来源 | Java面试真题解析&#xff08;ID&#xff1a;aimianshi666&#xff09;转载请联系授权&#xff08;微信ID&#xff1a;GG_Stone&#xff09;重要说明&#xff1a;本篇为博主《面试题精选-基础篇》系列中的一篇&#xff0c;查看系列面试文章请关注我。Gitee 开…

【Matlab】扩展卡尔曼滤波器原理及仿真(初学者入门专用)

文章目录0.引言及友情链接1.场景预设2.扩展卡尔曼滤波器3.仿真及效果0.引言及友情链接 \qquad卡尔曼滤波器&#xff08;Kalman Filter, KF&#xff09;是传感器融合&#xff08;Sensor Fusion&#xff09;的基础&#xff0c;虽然知乎、CSDN、GitHub等平台已有大量的学习资料&am…

Windows 8.1 升级到专业版

本例将一台 Windows 8.1 平板升级到专业版。升级前&#xff1a;升级的原因&#xff0c;是因为用户发现这台平板不能启用远程桌面管理。查看计算机属性&#xff0c;显示如下&#xff1a;从上面的信息可以看出&#xff0c;目前这台平板安装的不是专业版。具体是什么版本呢&#x…