你好朋友我回来了另一个问题!这次它实际上非常基本。我正在学习如何使用文本文件,我正在尝试使用用户输入来完成streamreader参数。我遇到的问题是,当程序确实发现存在文本文件时,它不会将其内容打印到控制台。有人可以帮我吗?输出没有显示任何内容,并且它继续无限而不打印。 I.E.它只是向下滚动。
这是我到目前为止所拥有的。
static void Main(string[] args)
{
Console.WriteLine("Hello! This application lets you write application entries!");
Console.WriteLine("Please Enter The text File: ");
string input = Console.ReadLine();
try
{
StreamReader reader = new StreamReader("C:\\Users\\Nate\\Desktop\\TextFiles\\" + input);
using (reader)
{
string line = reader.ReadLine();
while (reader != null)
{
Console.WriteLine(line);
line = reader.ReadLine();
}
}
}
catch (FileNotFoundException)
{
Console.WriteLine("That file does not exist!");
}
catch (DirectoryNotFoundException)
{
Console.WriteLine("Directory does not exist!");
}
catch (IOException)
{
Console.WriteLine("Oops! Something Wrong happened!");
}
Console.ReadKey();
}
答案 0 :(得分:1)
更改以下内容:
while (reader != null)
要:
while (!reader.EndOfStream )
通过这种方式,您正在从文件中读取它直到结束。
ReadLine需要在循环中:
while (!reader.EndOfStream )
{
string line = reader.ReadLine();
// ....
}
出于可读性目的,您可以更改此内容:
StreamReader reader = new StreamReader("C:\\Users\\Nate\\Desktop\\TextFiles\\" + input);
using (reader)
{
//...
}
要:
using (StreamReader reader = new StreamReader(@"C:\Users\Nate\Desktop\TextFiles\" + input))
{
// ...
}
答案 1 :(得分:0)
您的尝试块应如下所示;
try
{
StreamReader reader = new StreamReader(@"C:\Users\Nate\Desktop\TextFiles\" + input);
using (reader)
{
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
Console.WriteLine(line);
}
}
}