How to read a text file line by line Windows RT?

2019-01-20 12:09发布

问题:

i just cant find a clean explanation on how to read a text file, line by line in Windows RT ( for Windows 8 Store).

Lets say i have a folder: MyFolder/Notes.txt

And i want to read the data from Notes.txt and add it to an array of strings.

How do i read/write from that file? I was using StreamReader before, but now it is very confusing. And the dev samples dont help that much.

回答1:

Ive managed to find the answer myself. Thanks for the help.

    // 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 has:

Test1;Description1;

Test2;Description2;

//Output for ReadFile()

Test1

Test2



回答2:

You don't have to use File.ReadLines. You try an implementation like this if you prefer:

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


回答3:

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

reads the file line by line. This is different from File.ReadAllLines which reads the entire file at once.

If you want to read everything at once, into an array, use the latter.