Чтение текстового файла с использованием потокового чтения и отображение результатов в списке - PullRequest
0 голосов
/ 22 октября 2018

У меня есть некоторая информация в текстовом файле, которую я хочу прочитать и отобразить в списке в WPF.Это то, что у меня есть в текстовом файле:

First Name: ABC
Last Name: def
Mobile: 5453553535
email: abc@gmail.com

И это код:

private void listView1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    string text;
    FileStream aFile = new FileStream("D:\\PhoneBook.txt", FileMode.Open);
    StreamReader sr = new StreamReader(aFile);
    text = sr.ReadLine();
    // Read data in line by line.
    while (text != null)
    {
        foreach (string info in text.Split(',')) 
        {
            listView1.Items.Add(info);
        }       
    }
    sr.Close();
}

При каждом запуске программы список просто пуст и зависает.Любая помощь будет оценена.Спасибо

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Вам нужно добавить readline в цикле:

private void listView1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    string text;
    FileStream aFile = new FileStream("D:\\PhoneBook.txt", FileMode.Open);
    StreamReader sr = new StreamReader(aFile);
    text = sr.ReadLine();
    // Read data in line by line.
    while (text != null)
    {
        foreach (string info in text.Split(',')) 
        {
            listView1.Items.Add(info);
        }        
        // read the next line here
        text = sr.ReadLine();      
    }

    sr.Close();
}

Но лучшим подходом будет:

while(!sr.EndOfStream)
{
    text = sr.ReadLine();
    // now write ...
}
0 голосов
/ 22 октября 2018

Вы не обновляете «текст» внутри цикла - вам просто нужно добавить text = sr.ReadLine ();чтобы избежать продолжительности вашего цикла while!

Тем не менее, вы можете просто использовать File.ReadAllLines () - https://docs.microsoft.com/en-us/dotnet/api/system.io.file.readalllines?view=netframework-4.7.2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...