C# 之 对文本文件读写相关

网友投稿 654 2022-05-30

C# 之 对文本文件读写相关

Path类

文件相关类

FileStream(文件流):

读写文本流

Path类

我们不能去实例化Path类,Path类提供了一些静态方法,可以更容易的对路径名执行操作。

Console.WriteLine(Path.Combine(@"c:\my documents","Readme.txt"));

1

在不同的操作系统上,路径的表示是不一样的 windows上是 \ , 在Unix就是/ ,我们可以使用Path.Combine连接两个路径,不用关心在哪个系统上。

Path类的一些静态字段

文件相关类

1,通过FileInfo和DirectoryInfo类来读取文件和文件夹属性

作用:查看文件属性,创建文件,移动文件,重命名文件, 判断路径是否存在,创建目录

2,通过File读写文件

作用:读写文件

3,使用流来读写文件

FileStream

StreamReader(读取流-读取数据)

StreamWriter(写入流-向别人传输)

FileStream(文件流):

FileStream(文件流) 这个类主要用于二进制文件中读写,也可以使用它读写任何文件。

StreamReader(流读取器)和StreamWriter(流写入器)专门用于读写文本文件

使用FileStream读写二进制文件

FileStream实例用于读写文件中的数据,要构造FileStream实例,需要提供下面的4中信息:

要访问的文件 - 一般提供一个文件的完整路径名

表示如何打开文件的模式 - 新建文件或打开一个现有文件,如果打开一个现有的文件,写入操作是覆盖文件原来的内容,还是追加到文件的末尾?

表示访问文件的方式 - 只读 只写 还是读写

共享访问 - 表示是否独占访问文件,如果允许其他流同时访问文件,则这些流是只读 只写 还是读写文件

构造函数的参数:

构造函数的参数的取值

FileMode( 打开模式) Append,Create,CreateNew,Open,OpenOrCreate和Truncate

FileAccess(读取还是写入) Read,ReadWrite和Write

FileShare(文件共享设置) Delete,Inheritable,None,Read,ReadWrite和Write

PS:

如果文件不存在 Append Open和Truncate会抛出异常, 如果文件存在 CreateNew会抛出异常; Create 和 OpenOrCreate Create会删除现有的文件,新建一个空的文件,OpenOrCreate会判断当前是否有文件,没有的话才会创建;

PS:

当我们使用完了一个流之后,一定要调用fs.Close();方法去关闭流,关闭流会释放与它相关联的资源,允许其他应用程序为同一个文件设置流。这个操作也会刷新缓冲区。

读写文本流

我们对文本文件的读写一般使用StreamReader和StreamWriter,因为不同的文本有不同的编码格式,这个StreamReader会帮我们自动处理,所以我们不需要关心文本文件的编码是什么

创建文本的读取流(会检查字节码标记确定编码格式)

StreamReader sr = new StreamReader(@"c:\xx\Read.txt");

1

指定编码格式

StreamReader str = new StreamReader(@"c:\xx\xx.txt",Encoding.UTF8); (可取的编码格式 ASCII Unicode UTF7 UTF8 UTF32)

1

2

在文件流的基础上创建文本读取流

FileStream fs = new FileStream(@"c:\xx\xx.txt",FileMode.Open,FileAccess.Read,FileShare.None); StreamReader sr = new StreamReader(fs);FileStream fs = new FileStream(@"c:\xx\xx.txt",FileMode.Open,FileAccess.Read,FileShare.None); StreamReader sr = new StreamReader(fs);

1

2

C# 之 对文本文件读写相关

3

通过文件信息创建文本读取流-第二种方式

FileInfo myFile = new FileInfo(@"c:\xx\xx.txt"); StreamReader sr = myFile.OpenText(); sr.Close();

1

2

3

StreamWriter的创建

1,(默认使用UTF-8编码)

StreamWriter sw = new StreamWriter(@"c:\xx\xx.txt");

1

2, 第二个参数表示是否以追加的方式打开,第三个参数是编码方式

StreamWriter sw = new StreamWriter(@"c:\xx\xx.txt",true,Encoding.ASCII)

1

3,通过FileStream创建StreamWriter

FileStream fs = new FileStream(@"c:\xx\xx.txt",FileMode.CreateNew,FileAccess.Write,FileShare.Read); StreamWriter sw = new StreamWriter(fs);

1

2

4,通过FileInfo创建StreamWriter

FileInfo myFile = new FileInfo(@"c:\xx\xx.txt"); StreamWriter sw = myFile.CreateText(); sw.Close(); //所有流用完之后关闭

1

2

3

写入流的三种写入方式:

1,写入一行字符

string nextLine = "x xx x x x x ";sw.Write(nextLine);

1

2,写入一个字符

char nextChar = 'a'; sw.Write(nextChar);

1

2

3,写入字符数组

char[] charArray = new char[]{'a','b'}; sw.Write(charArray);

1

2

4,写入字符数组的一部分

//参数: charArray:要写入的数组; StartIndexv:开始索引; Length写入长度 sw.Write(charArray,StartIndex,Length);

1

2

C# Windows

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python编程:threading多线程
下一篇:Java---设计模块(单例的变形)(多例)
相关文章