c#之文件操作(学习笔记)

File类和Directory类

FileInfo类

需要提供一个文件路径来创建一个FileInfo类实例对象,FileInfo提供很多类似File的方法,在选择使用File还是FileInfo时应遵循下面的规则:

1、如果要对某个文件只进行一次复制操作,则可以使用File的静态方法,因为不必创建对象再调用方法,所以会快一些。

2、如果对某个文件进行很多次操作(如:复制、移动、重命名等),那么使用FileInfo会快一些,因为对象在开始就确定了某个文件,不像File一样每次都要去寻找文件

FileInfo、File、Directory通用属性

DirectoryInfo类

类似于FileInfo类。DirectoryInfo类的属性与FileInfo类一样,只是这些属性用于目录

DirectoryInfo类的专用属性

使用FileStream对象读取和写入

一:创建对象
FileStream表示在磁盘上指向文件的流,该类操作的是字节或字节数组,该类可以从指定位置开始读取

Stream类操作的字符数据,比起FileStream来更易于使用

创建FileStream对象的方式多种多样,

1、通过构造函数可以创建

FileStream中FileMode的属性:

2、File和FileInfo都提供了OpenRead()和OpenWrite()方法,更易于创建FileStream对象

二:文件指针

使用seek方法可以从文件的任何地方读取文件,当处理大型文件时非常省时

三:读取数据

使用FileStream类读取数据不像使用StreamReader类读取数据那样容易。因为FileStream类只能处理原始字节,所以不嗯呢该直接读入字符串,而StreamReader可以直接读入字符串,但是FileStream可以用于读取任何数据文件。

FileStream.Read(byte[] array,int index,int count);

第一个参数:用于接收FileStream对象数据的数组

第二个参数:字节数组中开始写入数据的位置

第三个参数:指定从文件中读取多少个字节

四:将字节数组转换为字符串:

Encoding.UTF8.GetDecoder().GetChars方法,参数不做介绍了F12可以查看到

写入数据

跟读入数据很类似

StreamWriter对象

StreamWriter类允许将字符串写入到文件中,向FileStream对象写入数据

一:创建StreamWriter对象

方法一:

FileStream fileStream = new FileStream(@"log.txt",FileMode.CreateNew);

StreamWriter sw= new StreamWriter(fileStream);

方法二:

StreamWriter sw = new StreamWriter("log.txt",true); // 第二个参数规定是否追加文件,false如果文件存在则改写该文件,否则创建一个新文件,true:如果文件存在,保留文件内容并向后追加,否则创建一个新文件,

示例:

StreamReader对象

 用于从外部数据源中读取数据,使用方法同StreamWriter

示例:

使用ReadLine()读取文本,这个方法读取回车符之前的文本,当达到文本末尾时返回null。

StreamReader有多个读取文本的方法,

Read()

此方法将字符作为正整数值返回,如果达到了流的结尾处,返回-1.上面的实例中可以这样编写:

对于小文件,可以用ReadToEnd

原文地址:https://www.cnblogs.com/lfxiao/p/6760455.html