我知道这很容易解决,但我已经为此奋斗了一个小时。我需要不断从用户那里获取单词,直到他们输入“退出”并将其写入进程中的文件中。但问题是,它出现了“输入单词:”,但是当我输入它并按回车键时,它不会接受它,直到我第二次写一些东西,然后它才能工作并使用第二个。
//@Author: Tyler Cage
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
public class week12Program1 {
public static void main(String[] args) throws FileNotFoundException, IOException{
//declaring the writer and initlizing it
FileOutputStream fileByteStream = new FileOutputStream("C:/Users/tyl3r/Desktop/test.txt");
PrintWriter outFS = new PrintWriter(fileByteStream);
Scanner scnr = new Scanner(System.in);
//declainrg ints
int i = 0;
//open file and print
while(i<1){
System.out.println("Enter word: ");
outFS.println(scnr.next());
outFS.flush();
if(scnr.next().equalsIgnoreCase("quit")){
System.out.println("Shutting down...");
fileByteStream.close();
i++;
}
}
}
}
最佳答案
这一段代码的问题:
while(i<1){
System.out.println("Enter word: ");
outFS.println(scnr.next()); // first time scanning input
outFS.flush();
if(scnr.next().equalsIgnoreCase("quit")){ // second time scanning input
System.out.println("Shutting down...");
fileByteStream.close();
i++;
}
实际上您正在阅读输入两次,因此您需要再次输入该单词才能获得预期结果。
要解决这个问题,你只需要声明变量来保存输入,然后在 if 条件下检查变量内容:
while(i<1){
System.out.println("Enter word: ");
String word = scnr.next();
outFS.println(word);
outFS.flush();
if(word.equalsIgnoreCase("quit")){
System.out.println("Shutting down...");
fileByteStream.close();
i++;
}
关于java - Printer Writer 让我输入两次以循环一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47459908/