尝试重置控制台输入流

时间:2014-12-01 03:24:22

标签: java

我正在尝试编写一个循环直到按下按键的程序,然后询问用户是否要退出。现在,在计算机询问用户是否要退出之后,计算机退出并且不等待用户键入退出。

似乎reader.readLine()返回用户先前输入的章程。

我尝试执行以下操作以从输入流中刷新旧数据。  reader.mark(0);  reader.reset();

该程序仍然具有相同的行为。 码 } while(System.in.available()== 0); //循环直到按键

     System.out.println("type exit to quit" );  // tell the user to type exit if he she wants to exit   

     BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

     // get rid of old data in input stream, not working
     reader.mark(0);
     reader.reset();    

     // get input from  user     
     mEnd=reader.readLine();    
} while(mEnd.compareTo("exit")!=0);

1 个答案:

答案 0 :(得分:0)

你的while循环在程序其余部分的上下文中没有正确构造。 while循环必须包装您希望继续执行的代码,直到用户键入quit。我不确定您的代码使用reader.mark(0);reader.reset();的原因,因为这可以通过以下方式实现:

请考虑以下代码示例:

Scanner input = new Scanner(System.in);

while (!input.hasNext("quit")) {

    String expression = input.nextLine(); // gets the next line from the Scanner

    // process the input

}

// once the value "quit" has been entered, the while loop terminates

这是你想要完成的事情吗?