我无法从文本文件中逐行阅读。我能怎么做?

时间:2015-07-30 12:48:41

标签: c# list file line streamreader

从assests文件夹中获取文件(例如: a.txt )之后,我正在逐行读取此文件

此代码部分(line=reader.Readline())必须读取文件行的​​内容;但是line正在获取文件路径。

我想将文件中的所有行添加到列表中。(lines

******这个项目是关于 Universal App 和** Windows Phone 8.1部分

    List<string> lines = new List<string>();

    public async void LoadFile(string file)
    {
        var InstallationFolder = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync("Assets");
        var _file = await InstallationFolder.GetFileAsync(file);
        byte[] byteArray = Encoding.UTF8.GetBytes(file);
        MemoryStream stream = new MemoryStream(byteArray);
        using (var reader = new StreamReader(stream))
        {
            string line = null;
            while ((line = reader.ReadLine()) != null)
            {
                lines.Add(line);
            }
        }  
    }

3 个答案:

答案 0 :(得分:0)

你可以这样做:

List<string> lines = new List<string>();

public void LoadFile(string file)
{
    lines = File.ReadAllLines(file).ToList();
}

但是,File.ReadAllLines(file)就是你要实现的......它返回一个数组。

只需在代码中使用它:

string[] lines = File.ReadAllLines(path);

答案 1 :(得分:0)

您没有使用StreamReader阅读该文件。尝试:

public async void LoadFile(string file)
    {          
        using (var reader = new StreamReader(file))
        {
            string line = null;
            while ((line = reader.ReadLine()) != null)
            {
                lines.Add(line);
            }
        }  
    }

其中file是您的文件路径和名称。

答案 2 :(得分:0)

var InstallationFolder = await      Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync("Assets");
var _file = await InstallationFolder.GetFileAsync("a.txt");
var content = await Windows.Storage.FileIO.ReadTextAsync(_file);
                        if (content.Contains(word))
                        {
                            lines.Add(word);   
                        }

我已根据您的建议编写了以下代码。但是我收到了一条错误消息,例如“类型'System.ArgumentOutOfRangeException异常'在mscorlib.ni.dll中发生但未在用户代码中处理 WinRT信息:目标多字节代码页中不存在Unicode字符的映射。 附加信息:目标多字节代码页中不存在Unicode字符的映射。 目标多字节代码页中不存在Unicode字符的映射。 如果存在此异常的处理程序,则可以安全地继续该程序。

此时我应该怎么做才能克服这个问题?