在C#编程语言中打开一个文件的方法

166 阅读6分钟

"在这篇文章中,我们将通过Ubuntu 20.04命令行终端,用C#编程语言讨论和实现打开文件的不同例子。在创建、打开和读取文件时,像FileStream和Stream Writer这样的类的使用将很有帮助,我们将在后面的不同例子中看到。这些类是System.IO命名空间的一部分,它有与所有输入和输出功能相关的不同类"。

C#程序中的File.Open()方法

File.Open()方法是文件流类所固有的,可以通过创建该类的一个对象来访问。在C#编程语言中,打开文件的语法如下所示。

文件流是system.IO命名空间的一部分,其中文件流被用于文件操作,如读、写,甚至寻找目录中的现有文件。要使用文件流,我们首先需要创建一个文件流类的对象;该对象可以被赋予四个参数,以帮助我们访问文件。FileName参数由文件的标题组成,而FileMode参数则指定了你想在文件上工作的模式。FileAcess参数定义了文件的访问状态,而FileShare参数用于确定文件与其他FileStreams对象的共享情况。

例01:在Ubuntu 20.04中使用文件打开方法来打开一个预先存在的文件

在这个例子中,我们将打开一个预先存在于一个目录中的文件。为了访问该文件,我们必须将文件的名称和路径作为参数提供给文件流的对象,并给出我们想要访问它的模式。

Text Description automatically generated

在这个C#程序中,我们将使用文件打开方法,并给它一些参数;其中一个将是FileMode.Open。完成参数后,我们将继续创建一个大小为 "1024 "的字节数组。我们将生成一个UTF8Encoding类的对象。之后,我们将使用while循环创建一个读取方法;使用数组的长度来运行循环,我们将能够读取文件,直到其结束。

Text Description automatically generated

Graphical user interface, text, application Description automatically generated

我们可以在输出屏幕和文件中看到,文件的文本是相同的,是通过文件打开方法访问的。

例02:在Ubuntu 20.04中使用流作家和文件流类来创建和打开一个文件

Stream Writer是一个同样属于System.IO命名空间的类。它用于在流中以指定的编码写入字符。

Graphical user interface, text, application Description automatically generated

在这个C#程序中,我们将生成一个StreamWriter类的对象,并使用Write()方法在指定的文件中写入我们的字符流。之后,我们将使用文件流类的File.Open函数。然后,我们将创建一个字节数组并创建一个UTF8encoding类的对象来转换文件中的字符。While循环的运行时间将与文件中的字符长度相等,并在读取后退出。

A screenshot of a computer Description automatically generated with medium confidence

我们可以在输出中看到,文件已经形成,并且数据被正确保存。

Graphical user interface Description automatically generated with low confidence

例子03:在Ubuntu 20.04中使用FileStream类来创建一个临时文件并启动它

我们可以使用FileStream类来创建和访问一个临时文件。这次我们将使用FileStream为不同的目的创建两个对象。第一次我们将建立一个对象来创建临时文件并在其中写入一些数据,它将根据我们的需要提供所有的参数,包括File access和FileShare。

A screenshot of a computer Description automatically generated with medium confidence

在这个程序中,我们将使用GetTempFileName()方法为文件创建一个路径和名称,并使用FileMode.Open顶层打开文件,使用FileAccess.Write和FileShare。之后,我们将创建一个具有UTF8编码的字节数组;我们还将使用GetByte方法来允许我们在文件中输入数据。Write()函数将被用来在文件中插入输入的字符串。Write()方法将输入数据到我们在Byte Array中给出的字符串的长度。然后,我们将陈述File.open方法并写入其所有参数。在这之后,我们将继续创建一个大小为 "1024 "的字节数组。我们将建立一个UTF8Encoding类的对象。

Text Description automatically generated

正如输出显示的那样,我们已经打开了一个文本文件,并成功地在其中添加了一些文本。

例04:在Ubuntu 20.04中使用文件流类打开并读取一个多行的文本文件

在这个例子中,我们将打开并访问一个文本文件。Read()方法用于读取任何文本文件,即使是使用文件流类的多行文件,本例将使用该方法。

Graphical user interface, text, application Description automatically generated

在这个C#程序中,Read()方法将被用来访问文件。在完成File.Open()方法的参数后,我们将创建一个大小为 "1024 "的字节数组。我们要制作一个UTF8Encoding类对象。然后,使用while循环和数组的长度来执行循环,我们将能够读取文件,直到它完成,当所有的多行都被读取后,循环就会结束。

Text Description automatically generated with medium confidence

程序和文件的输出结果表明,该文件被正确地访问和读取。

Timeline Description automatically generated with low confidence

例05:在Ubuntu 20.04中使用文件流类打开一个只读文本文件

在这个例子中,我们将重点讨论如何使用文件流类访问一个只读文件。我们将使用File.Open()方法来打开文件,并尝试访问和编辑该文件,看看编译器对这一命令的反应。

Text Description automatically generated

在这个C#程序中,我们将首先创建一个文件。现在我们将从FileStream类中建立一个对象;这个对象将被用来访问和读取我们刚刚创建的文件。为了访问该文件,我们将调用File.Open()方法并填写必要的参数。之后,我们将使用while循环创建一个读取方法;使用数组的长度来运行循环,我们将能够读取文件直到其结束。我们将通过使用try和catch方法来执行异常处理,看看我们是否被允许在文件上写东西。

Text Description automatically generated

正如输出所显示的,我们可以看到系统不允许我们在文件中写入,并且抛出了一个错误 "流不支持写入"。

总结

在这篇文章中,我们讨论了在C#编程语言中打开一个文件的方法。我们使用System.IO命名空间中的File Stream和Stream Writer类,在C#编程语言中创建和打开文件。我们还通过使用Ubuntu 20.04命令行终端,实现了在不同条件下打开文件和文件中几种数据类型的几个例子。