我想用FileStream类打开一个资源文件。这是一个文本文件,我想逐行阅读。
FileStream fs = new FileStream(Properties.Resources.Testing, FileMode.Open, FileAccess.Read);
被叫异常是System.ArgumentException
,它表示存在无效字符。
我希望有人可以帮我解决这个问题,或者如果有更好的方法也可以,但我需要.exe中的文件,所以它需要是一个资源..
答案 0 :(得分:2)
当您将文本文件添加为资源时,它将嵌入为字符串。因此,您的FileStream构造函数调用将假定您尝试在磁盘上打开一个名称与文本文件内容相同的文件。当然,结果很糟糕。
如果真的想要一个流,字符串往往是好的,你可能会认为String.Split()方法将其分解为非常清楚线。或者您可能喜欢StringReader类,因此您可以使用ReadLine():
using (var rdr = new StringReader(Properties.Resources.Testing)) {
string line;
while ((line = rdr.ReadLine()) != null) {
// Do something with line
//...
}
}