从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);
}
}
}
答案 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字符的映射。 如果存在此异常的处理程序,则可以安全地继续该程序。“
此时我应该怎么做才能克服这个问题?