问题描述
解决方案
用stream流读取存到字符数组中
public static string[] Read(string path)
{
StreamReader sr = new StreamReader(path, Encoding.Default);
String line;
string l=string.Empty;
string[] lines;
string[] lin=null;
while ((line = sr.ReadLine()) != null)
{
l += line+"#";
}
lines = l.Split('#');
for (int i = lines.Length - 1; i > lines.Length - 4 && i > 0; i--)
lin[i] = lines[i];
return lin;
}
解决方案二:
你这txt的文件读取的内容不是很多,可以用File的readalllines方法来读:读取的内容以字符串数组的形式存入数组,方便你下一步解析。代码如下:
string[] strs = File.ReadAllLines(@"d:csharp estdata.txt");
解决方案三:
【转】C#如何读取txt文件中每一行每一个数据
解决方案四:
你好利害。怎么写的怎么读不就可以了。readline 按你的格式读出来是的
解决方案五:
上次的回答有点瑕疵那个返回的数组会有点问题。
public static string[] Read(string path)
{
StreamReader sr = new StreamReader(path, Encoding.Default);
String line;
string l = string.Empty;
string[] lines;
string[] lin = new string[3];
while ((line = sr.ReadLine()) != null)
{
l += line + "#";
}
lines = l.Split('#');
for (int i = lines.Length - 1, j = 0; i > lines.Length - 4 && i > 0; i--)
lin[j++] = lines[i-1];
return lin;
}
这个返回的是后面的三行内容。如果是cmd的话是这么调用的。
string[] str = null;
str= Read(@"C:UsersheroDesktop新建文本文档.txt");
foreach(string s in str)
Console.WriteLine(s);
解决方案六:
不好意思刚才实验出错了。下面那个兄弟的方法也是可行的。我以为是所有昂读成一整行,实际上是我的txt是只要一行,调试的时候没想到。
public static string[] Readline(string path)
{
string[] lin = new string[3];
string[] strs = File.ReadAllLines(path, Encoding.Default);
for (int i = strs.Length , j = 0; i > strs.Length -3 && i > 0; i--)
lin[j++] = strs[i - 1];
return lin;
}
你会发现跟我上次那个for循环有点不一样,那是因为我那个方法每一行读后添加一个#字符,最后一行末尾也有#字符,split分割的时候最后会多出一行空字符。所以要去length-1。他这个方法并不存在这个问题,而且我那个方法的前提条件是你的txt文件内没有#字符不然分割的时候回出现问题。这个是最优答案,借鉴了楼下兄弟的方法。
时间: 2024-09-17 03:50:22