简单I/O(读取文本文件)
本文关键字:取文本 文件 读取 简单 | 更新日期: 2023-09-27 18:12:58
我在网上查找了一个简单的文件读写示例。作为一个python专业的毕业生,转向c#对我来说是一个很大的进步,但我真的很喜欢这门语言。
我看到人们用StringReader, FileSystem做文件I/O,我听说Stream也被使用。作为一个语言的初学者,一个不知道太多复杂概念的人(但有基本的东西,方法,类,函数),我该如何正确地读取文件?我看到人们使用"using"关键字,然后将其视为类或方法。我完全不知道这是怎么回事。我在找像
这样的东西 FileSystem() f = file.read("test.txt")
f.DoStuff()
在python中,使用存储在另一个文件中的字典非常容易。我所要做的就是:
import Dict.py
# Now i have access to all of Dict's dictionaries. We'll say the name of one
# of the dictioanries is "f".
print Dict.f[1] # Or whatever. Now i can use the dictionary f like it was local.
我的目标是做一款绞刑游戏。我试图从单词列表(英语字典)中随机选择一个单词,并让他们猜测该单词,但我不知道如何做诸如读取文件和导入其内容之类的事情。同样,尽可能简单,让初学者也能理解,这是非常有帮助的。万分感谢!
这里有一些在c#中做IO的最重要的类:
原始二进制IO
-
Stream
:它是表示顺序字节流的所有类的基类。流可以是只读、只读或读写。给出了Read
、Write
、Seek
等方法。请记住,流用于访问原始二进制数据;根据您想要做的事情,直接使用它可能不太方便。-
FileStream
:在文件中读取和/或写入数据的流。 -
MemoryStream
:在内存中读写数据的流。
-
文本IO
-
TextReader
:它是用于读取字符序列的所有类的基类。它提供了Read
、ReadLine
和ReadToEnd
等方法。-
StreamReader
:从Stream
读取文本的TextReader
。StreamReader
总是有一个Encoding
(UTF-8, ASCII等),指定如何将二进制数据从流转换为文本。 -
StringReader
:从String
读取文本的TextReader
(用于处理内存中的字符串,就好像它是文件的内容一样)
-
-
TextWriter
:它是用于编写字符序列的所有类的基类。它提供了Write
和WriteLine
等方法。-
StreamWriter
:向Stream
写入文本的TextWriter
。像StreamReader
一样,它有一个Encoding
来指定如何将文本转换为二进制数据。 -
StringWriter
:向StringBuilder
写入文本的文本写入器
-
.NET框架还提供了一个名为File
的帮助类来简化IO操作:
-
ReadAllBytes
方法以字节数组的形式返回文件的所有内容 -
ReadAllText
方法以字符串形式返回文件的所有内容 -
ReadAllLines
方法将文件中的所有文本行作为字符串数组返回 -
WriteAllBytes
方法将指定的字节数组写入文件(替换现有的内容) -
WriteAllText
方法将指定的字符串写入文件(替换现有的内容) -
WriteAllLines
方法将指定的文本行写入文件(替换现有的内容)
有关详细信息,请阅读MSDN
System.IO
名称空间文档。 C#
有很好的内置方法,可以让您轻松地读取&操作文件内容。例如,如果您想从文件中读取所有行,您可以简单地使用File.ReadAllLines
方法:
var lines = File.ReadAllLines("your file path");
如果您想要排除某些行,您可以使用File.ReadLines
方法与Linq
:
var filteredLines = File.ReadLines("your file path")
.Where(line => yourCondition)
.ToArray();
这只是两个简单的例子。查看文档了解更多细节:
-
File Class
- 文件和流I/O