2012-11-09 27 views
1

我的文件程序工作正常。它用我提交的内容创建一个txt文件。但是,为什么我的控制台无限显示“真实”?如何解决检查扫描仪是否有另一行输入的循环?

enter image description here

 Scanner input = new Scanner(System.in); 
     System.out.println("What would you like the file to be called?"); 
     String output = input.nextLine(); 

     if (!output.contains(".txt")) { 
      output += ".txt"; 
     } 

     PrintWriter out = new PrintWriter(output); 
     System.out.println("What would you like to print to the file? "); 
     String fileContents = input.nextLine(); 
     out.print(fileContents); 
     out.close(); 

     Scanner fromFile = new Scanner(new File(output)); 

     System.out.println("The File " + output + " contains: "); 

     while (fromFile.hasNextLine()) { 
      System.out.println(fromFile.hasNextLine()); 
     } 

     System.out.println("Finished reading and writing from file.. "); 
     input.close(); 
     fromFile.close(); 

} 

回答

6

你是不是真实的检索下一行

while (fromFile.hasNextLine()) { 
    System.out.println(fromFile.hasNextLine()); 
} 

你的打印语句简单地重新检查,它有一个换行符。我想你的意思做的是

System.out.println(fromFile.nextLine()); 

通过调用nextLine()你是在告诉你要消耗掉所有的字符,直到下一个'\n'(新行)字符扫描仪。请参阅Scanner类以获取更多信息。

2

你需要在循环内部实际得到一行,否则会报告有下一行(第一行)。