[英]hasNextLine() always returning true within While Loop
這個問題與我之前問過的關於同一程序的問題有關,可以在這里查看:
我已經解決了上面的問題,並將函數重寫為 while 循環而不是 while 循環,但現在我遇到了相反的問題,即沒有任何內容寫入文件。 我已經插入了一個打印語句來告訴我 hasNextLine 的狀態,即使輸入了一個空行,它也總是返回 true,這是我希望編寫器終止的時候。
這是更新后的代碼:
import java.util.Scanner;
import java.io.FileNotFoundException;
import java.io.PrintWriter;;
public class Lab_Week8_WriteAStory {
public static void main(String[] args) throws FileNotFoundException {
Scanner whatToWrite = new Scanner (System.in);
PrintWriter writing = new PrintWriter ("Read and Write Files/output.txt");
while (whatToWrite.hasNextLine()){
String writeToFile = whatToWrite.nextLine();
writing.println(writeToFile);
System.out.println (whatToWrite.hasNextLine());
}
writing.close();
whatToWrite.close();
}
}
檢查Scanner.hasNextLine()
的文檔:
如果此掃描器的輸入中有另一行,則返回 true。 此方法可能會在等待輸入時阻塞。 掃描儀不會通過任何輸入。
這就是正在發生的事情。 由於您使用System.in
作為輸入源,該方法正在等待您的輸入,一旦您提供它,它就會返回 true 並繼續下一行,並且該過程會重復。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.