我想在文本文件中读取并在我的Java程序中打印响应。
我的文本文件包含许多行,每行包含一系列成绩。其中一些有领先的空白(表示空白)。
我有两个问题: 1.文本文件中的第一行不打印;它从第二行开始 2.其中一个等级线在开头包含两个“空格”,表示空白;那些空白区域没有打印。
以下是我的代码。我可以解决这个问题的任何输入?这里的新程序员非常感谢您的帮助。
public static void printResponses (File f) throws FileNotFoundException
{
Scanner input = new Scanner (f);
String line;
int count = 1;
while (input.nextLine() != null)
{
line = input.nextLine();
System.out.println ("Student #" + count +"\'s responses: " + line);
count++;
}
System.out.println ("We have reached \"end of file!\"\n");
if (!f.exists())
{
System.out.println ("An error occurred. Please try again.");
System.exit(0);
}
}
答案 0 :(得分:3)
每次拨打input.nextLine()
时,您都会使用“令牌”#39;来自输入文件。也就是说,Scanner
input
会通过您提供的输入并且“消耗掉”'扫描它时的一条线。
当您致电while (input.nextLine() != null)
时,您正在使用该文件的第一行。
您想要致电while (input.hasNextLine())
,这样您就不会在每次循环迭代开始时使用令牌而不使用它。