我目前正在处理一些代码,但我遇到了问题。我有一个包含名称的文本文件,每个名称都在一个新行上。我已将这些名称读入列表,但我希望能够按顺序读取每一行的每个字母(文本文件中的名称)。如果有人能帮助我,我会非常感激!
答案 0 :(得分:5)
此代码将文件c:\ temp \ test-1.txt加载到StreamReader中,读取每一行直到它达到EOF,并将新行上的每个字符打印到控制台。根据需要进行修改。
请注意,如果您的文件存储在一个很长的行(并且是一个非常大的文件),那么您必须在此处进行一些额外的处理以避免内存不足。
string line;
using (StreamReader reader = new StreamReader("C:\\temp\\test-1.txt"))
{
while (reader.Peek() > -1)
{
line = reader.ReadLine();
foreach (char c in line)
{
Console.WriteLine(c);
}
}
}
答案 1 :(得分:2)
这是一个使用File.ReadLines读取文件的程序。
names.txt中:
Bob
Mary
Sue
代码:
var file = @"C:\temp\names.txt";
Console.WriteLine("Opening file {0}", file);
foreach(var name in File.ReadLines(file))
{
Console.WriteLine("Printing letters in name: {0}", name);
foreach(var letter in name)
{
Console.WriteLine(letter);
}
}
Console.WriteLine("Done reading file");
输出:
Opening file C:\temp\names.txt
Printing letters in name: Bob
B
o
b
Printing letters in name: Mary
M
a
r
y
Printing letters in name: Sue
S
u
e
Done reading file
答案 2 :(得分:0)
这是你使用Linq从文件中获取所有字符的方法:
var allChars = File.ReadLines(filename).SelectMany(c => c);
然后你可以这样迭代:
foreach (char ch in allChars)
{
Console.WriteLine(ch);
}