![](/img/trans.png)
[英]Fast text reading (alternatives to File.ReadAllText() and/or StreamReader.ReadToEnd())
[英]StreamReader.ReadToEnd returns file path
我對StreamReader有一個奇怪的問題。 我的程序是一個控制台程序,它應該遍歷所有* .cs文件的目錄結構。 然后檢查文件中是否有特定單詞,並寫入文件路徑以輸出。
using (StringReader sr = new StringReader(fPath))
{
string content = sr.ReadLine(); // sr.ReadToEnd();
Debug.WriteLine(content);
int found = content.IndexOf(p);
if (found != -1)
{
result = true;
}
}
這是我用來在特定文件中查找工作的代碼。 問題是sr.ReadToEnd(而且還有ReadLine)返回fPath的值而不是文件的內容!
該文件存在且未鎖定。
如果fPath是:“ C:\\ TEMP \\ DC_LV1_LaMine_Mk2Plus_134_ix220_20160404 \\ Alarm.Script.cs”
內容將為:“ C:\\ TEMP \\ DC_LV1_LaMine_Mk2Plus_134_ix220_20160404 \\ Alarm.Script.cs”
誰能看到我做錯了嗎?
您正在使用字符串閱讀器而不是流閱讀器
StringReader實現了從字符串讀取的TextReader
StramReader實現了TextReader,該TextReader以特定編碼從字節流中讀取字符
如果要從文件讀取,請將此構造函數用於StreamReader
如果文件很小並且您有足夠的資源可以一次讀取所有文件,則也可以使用File.ReadAllText
為了更全面的概述,請參閱此文章
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.