2012-11-09 58 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

你需要在循環內部實際得到一行,否則會報告有下一行(第一行)。