简单的I / O(读取文本文件)

时间:2014-07-14 21:11:54

标签: c#

我在网上查了一个文件读写的简单例子。作为一名蟒蛇毕业生并进入C#对我来说是一大步,但我真的很喜欢这种语言。

我已经看到人们使用StringReader,FileSystem进行文件I / O,我听说也使用了Stream。作为语言的初学者,我不知道太多复杂的概念(但有基本的东西,方法,类,函数),我将如何正确阅读文件?我看到有人使用"使用"关键字,然后将其视为类或方法。我不知道那是怎么回事。我正在寻找像

这样的东西
    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.

我的目标是制作一个刽子手游戏。我试图从一个单词列表中选择一个随机单词(英语词典)并让他们猜出这个单词,但我不知道怎么做这样的事情,比如读取文件,然后导入它的内容。再一次,尽可能简单,这样初学者可以理解这将是非常有帮助的。万分感谢!

2 个答案:

答案 0 :(得分:2)

以下是在C#中执行IO的一些最重要的类:

原始二进制IO

  • Stream:它是表示顺序字节流的所有类的基类。流可以是只读,只写或读写。它提供了ReadWriteSeek等方法。请记住,流用于访问原始二进制数据;根据您的想法,直接使用它可能不方便。
    • FileStream:用于在文件中读取和/或写入数据的流。
    • MemoryStream:在内存中读写数据的流。

文字IO

  • TextReader:它是用于读取一系列字符的所有类的基类。它提供了ReadReadLineReadToEnd等方法。

    • StreamReaderTextReaderStream读取文字。 StreamReader始终具有Encoding(UTF-8,ASCII等),指定如何将流中的二进制数据转换为文本。
    • StringReaderTextReaderString读取文本(用于处理内存中的字符串,就像它是文件的内容一样)
  • TextWriter:它是用于编写字符序列的所有类的基类。它提供了WriteWriteLine等方法。

    • StreamWriterTextWriter将文字写入Stream。与StreamReader类似,它有Encoding,指定如何将文本转换为二进制数据。
    • StringWriter:将文本写入StringBuilder
    • 的TextWriter

.NET框架还提供了一个名为File的辅助类,用于简化IO操作:

  • ReadAllBytes方法将文件的所有内容作为字节数组
  • 返回
  • ReadAllText方法将文件的所有内容作为字符串
  • 返回
  • ReadAllLines方法将文件中的所有文本行作为字符串数组
  • 返回
  • WriteAllBytes方法将指定的字节数组写入文件(替换现有内容)
  • WriteAllText方法将指定的字符串写入文件(替换现有内容)
  • WriteAllLines方法将指定的文本行写入文件(替换现有内容)

有关详情,请参阅documentation of the System.IO namespace on MSDN

答案 1 :(得分:1)

C#有很好的内置方法,可让您轻松阅读和阅读操纵文件内容。例如,如果要读取文件中的所有行,只需使用File.ReadAllLines方法:

var lines = File.ReadAllLines("your file path");

如果您想排除某些行,可以使用File.ReadLines方法Linq

var filteredLines = File.ReadLines("your file path")
                    .Where(line => yourCondition)
                    .ToArray();

这只是两个简单的例子。有关详细信息,请参阅文档:

  1. File Class
  2. File and Stream I/O