1
我在Windows 7上编写Java,并希望能够使用键盘的输入,我只能假设它是标准输入。从键盘获取输入而不暂停程序
我试过使用BufferedInput
,System.in
和Scanner
,但它们都需要程序暂停并等待行结束或返回!无论如何只是收集和记录数据,因为它使用,而不必等待回报?
我在Windows 7上编写Java,并希望能够使用键盘的输入,我只能假设它是标准输入。从键盘获取输入而不暂停程序
我试过使用BufferedInput
,System.in
和Scanner
,但它们都需要程序暂停并等待行结束或返回!无论如何只是收集和记录数据,因为它使用,而不必等待回报?
这里是一个快速的解决方案:
public static void main(String[] args) {
Thread inputThread = new Thread(new Runnable() {
@Override
public void run() {
Scanner scan = new Scanner(System.in);
String input = "";
while (true) {
System.out.println("Type something: ");
input = scan.nextLine();
System.out.println("Input: "+input);
}
}
});
inputThread.start();
while (true) {
System.out.println("");
System.out.println("test");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
主线程打印 “测试” 每一秒。 inputThread要求用户键入内容然后打印他写的内容。这只是一种“可视化”解决方案,当然用户打字时你肯定不想打印某些东西。
您可以创建一个新线程,并在此新线程中请求输入,同时在主线程中执行其他操作。 – florian 2012-02-19 11:44:25
*“不必等待返回*我(作为用户)在我很好并准备好应用程序时点击'返回'对数据做些什么事情以前,应用程序做什么用途那个时候?你想要提供什么样的应用程序功能? – 2012-02-19 11:59:41
我想我只是理解你说的问题安德鲁。我不认为你可以在控制台上做你想做的事 – florian 2012-02-19 12:15:20