我在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:不一定 - 他或她也可以将所有文件内容(即所有行)读取为单个字符串。 –