如何逐行读取文本文件?

时间:2012-12-21 21:31:37

标签: c# windows-8 io windows-runtime windows-store-apps

我无法找到关于如何在Windows RT中逐行读取文本文件的清晰说明(适用于Windows 8商店)。

假设我有一个文件夹:MyFolder/Notes.txt

我想从Notes.txt读取数据并将其添加到字符串数组中。

我如何从该文件读/写?之前我正在使用StreamReader,但现在它非常令人困惑。开发样本没有那么多帮助。

3 个答案:

答案 0 :(得分:7)

我自己找到了答案。谢谢你的帮助。

    // READ FILE
    public async void ReadFile()
    {
        // settings
        var path = @"MyFolder\MyFile.txt";
        var folder = Windows.ApplicationModel.Package.Current.InstalledLocation;


        // acquire file
        var file = await folder.GetFileAsync(path);
        var readFile = await Windows.Storage.FileIO.ReadLinesAsync(file);
        foreach (var line in readFile)
        {
            Debug.WriteLine("" + line.Split(';')[0]);
        }
     }

MyFile.txt有:

测试1;内容描述;

的Test2;内容描述;

// ReadFile()的输出

测试1

的Test2

答案 1 :(得分:3)

您不必使用File.ReadLines。如果您愿意,可以尝试这样的实现:

using (StreamReader reader = new StreamReader("notes.txt"))
{
    while (reader.Peek() >= 0)
    {
        Console.WriteLine(reader.ReadLine());
    }
}

答案 2 :(得分:2)

foreach (var line in File.ReadLines("MyFolder/Notes.txt"))
{
  ...
}

逐行读取文件。这与一次读取整个文件的File.ReadAllLines不同。

如果您想一次读取所有内容,请使用后者。