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.
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
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());
}
}
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.