C# 读取文本文件,换行
C# Read From Text File, New Line
我将文本写入文件的代码完美运行...
string path = @"./prefs.dat";
string stringdir = textBox1.Text + Environment.NewLine + textBox2.Text + Environment.NewLine;
System.IO.File.WriteAllText(path, stringdir);
然后我使用这段代码从文件中读取,它再次完美运行...
Process test = new Process();
string FileName = "prefs.dat";
StreamReader sr = new StreamReader(FileName);
List<string> lines = new List<string>();
lines.Add(sr.ReadLine());
string s = lines[0];
sr.Close();
test.StartInfo.FileName = s;
test.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
test.StartInfo.CreateNoWindow = false;
test.Start();
然而,当我想使用完全相同的代码读取第二行时,除了更改...
string s = lines[1];
然后它失败了,我得到一个空结果。当我进一步查看时,错误甚至没有看到第二行,即使我显然有两行。
ReadLine()
方法一次读取一行,您需要使用以下方式使用 while 循环添加所有行:
string line="";
while((line = sr.ReadLine()) != null)
{
lines.Add(line);
}
string s = lines[1];
见this MSDN article (Reading a Text File One Line at a Time) for more details
另一种方法是使用 ReadAllLines() 一次读取所有行,然后访问第二行:
string[] lines = System.IO.File.ReadAllLines(stringdir);
string s = lines[1];
如果你想获取第二行的内容 string s = lines[1];
你需要先将其添加到列表中
Process test = new Process();
string FileName = "prefs.dat";
StreamReader sr = new StreamReader(FileName);
List<string> lines = new List<string>();
lines.Add(sr.ReadLine());
lines.Add(sr.ReadLine());
string s1 = lines[0];
string s2 = lines[1]; // Now you can access second line
sr.Close();
test.StartInfo.FileName = s;
test.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
test.StartInfo.CreateNoWindow = false;
test.Start();
您也可以一并阅读所有行
string[] lines = System.IO.File.ReadAllLines("path");
我将文本写入文件的代码完美运行...
string path = @"./prefs.dat";
string stringdir = textBox1.Text + Environment.NewLine + textBox2.Text + Environment.NewLine;
System.IO.File.WriteAllText(path, stringdir);
然后我使用这段代码从文件中读取,它再次完美运行...
Process test = new Process();
string FileName = "prefs.dat";
StreamReader sr = new StreamReader(FileName);
List<string> lines = new List<string>();
lines.Add(sr.ReadLine());
string s = lines[0];
sr.Close();
test.StartInfo.FileName = s;
test.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
test.StartInfo.CreateNoWindow = false;
test.Start();
然而,当我想使用完全相同的代码读取第二行时,除了更改...
string s = lines[1];
然后它失败了,我得到一个空结果。当我进一步查看时,错误甚至没有看到第二行,即使我显然有两行。
ReadLine()
方法一次读取一行,您需要使用以下方式使用 while 循环添加所有行:
string line="";
while((line = sr.ReadLine()) != null)
{
lines.Add(line);
}
string s = lines[1];
见this MSDN article (Reading a Text File One Line at a Time) for more details
另一种方法是使用 ReadAllLines() 一次读取所有行,然后访问第二行:
string[] lines = System.IO.File.ReadAllLines(stringdir);
string s = lines[1];
如果你想获取第二行的内容 string s = lines[1];
你需要先将其添加到列表中
Process test = new Process();
string FileName = "prefs.dat";
StreamReader sr = new StreamReader(FileName);
List<string> lines = new List<string>();
lines.Add(sr.ReadLine());
lines.Add(sr.ReadLine());
string s1 = lines[0];
string s2 = lines[1]; // Now you can access second line
sr.Close();
test.StartInfo.FileName = s;
test.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
test.StartInfo.CreateNoWindow = false;
test.Start();
您也可以一并阅读所有行
string[] lines = System.IO.File.ReadAllLines("path");