我在C#中做了一個簡單的文本冒險,我想知道是否可以從.txt文件中讀取某些行並將它們分配給字符串。將文本文件中的行分配給字符串
我知道如何讀取所有從.txt文件中的文本,但究竟會我給你一定行的內容爲字符串?
我在C#中做了一個簡單的文本冒險,我想知道是否可以從.txt文件中讀取某些行並將它們分配給字符串。將文本文件中的行分配給字符串
我知道如何讀取所有從.txt文件中的文本,但究竟會我給你一定行的內容爲字符串?
您是否考慮過ReadAllLines方法?
它返回一個行數組,您可以從中選擇所需的行。
所以對於例如,如果你想選擇3號線(假設你已經在文件中3行):
string[] lines = File.ReadAllLines(path);
string myThirdLine= lines[2];
我已經嘗試了ReadAllLines方法,但我不熟悉如何實際選擇某一行。 – user1994100
請參閱編輯。 – loxxy
也許最簡單的(和最便宜的內存消耗方面)是File.ReadLines
:
String stringAtLine10 = File.ReadLines(path).ElementAtOrDefault(9);
請注意,如果文件中少於10行,則爲null
。參見:ElementAtOrDefault
。
這只是一個StreamReader
的簡明版本,這將增加每行計數器變量。
作爲一種先進的替代方案:ReadLines加上一些LINQ:
var lines = File.ReadLines(myFilePath).Where(MyCondition).ToArray();
其中MyCondition
:
bool MyCondition(string line)
{
if (line == "something")
{
return true;
}
return false;
}
如果你不希望加載的所有行atonce
using(StreamReader reader=new StreamReader(path))
{
String line;
while((line=reader.ReadLine())!=null)//process temp
}
下面是一個示例,您可以將這些行分配給一個字符串,但不能確定哪一行是哪個通過字段,你必須自己選擇它們。 這是您要分配的字符串的行。 例如,您需要第一行,您將哪一個定義爲一個而不是零,您需要第八行,您將其定義爲八行。
string getWord(int which)
{
string readed = "";
using (Systen.IO.StreamReader read = new System.IO.StreamReader("PATH HERE"))
{
readed = read.ReadToEnd();
}
string[] toReturn = readed.Split('\n');
return toReturn[which - 1];
}
你如何決定哪行? – doctorlove
如果你知道如何獲得文本,那麼你的問題是如何獲得數組的元素 – Sayse
@Sayse:不一定 - 他或她也可以將所有文件內容(即所有行)讀取爲單個字符串。 –