java 键盘获取一个字符问题?
java 键盘获取一个字符问题?想从键盘获取一个字符,不按回车。接着获取下面的字符!
但是read()是带阻塞的,只有敲回车后才能往下执行。
想问有没有不带阻塞的! --------------------编程问答-------------------- 想让程序往下继续执行可以考虑下多线程嘛 --------------------编程问答-------------------- 就像单纯的用IO去做,不太想用线程!!
最主要的问题就是java iO的非阻塞问题。 --------------------编程问答-------------------- java获取键盘的输入方式,都是在System.in这个输入流上做的包装啊
而这是一个InputStream类型,所以所有的获取输入的方式都是阻塞的
你想直接从流上着手,我个人推测不太可能。 --------------------编程问答-------------------- 不知道楼主要的效果是不是这样。
InputStreamReader reader=new InputStreamReader(System.in);
BufferedReader bf=new BufferedReader(reader);
String data;
while((data=bf.readLine())!=null && data.length()!=0){
System.out.println("echo:"+data);
}
--------------------编程问答-------------------- 都是堵塞式的吧
public void PrintWriterDemo throws IOExcepton
{
BufferedReader bufr = new BufferedReader(InputStreamReader(System.in));
//设置成true,自动刷新
PrintWriter out = new PrintWriter(new FileWriter(路径),true);
String line ="";
while((line=bufr.readLine())!=null)
{
if("over".equals(line))
break;
out.println(line.toUpperCase());
}
bufr.close();
out.close();
} --------------------编程问答-------------------- scanner --------------------编程问答-------------------- 如果你有视图的话,可以搞一个键盘事件的监听器,监听所有键盘按下事件,从而获得每个字符。
this.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
String keyText = KeyEvent.getKeyText(e.getKeyCode());
System.out.print(keyText + " ");
});
么有视图的话,楼主尝试自己实现一个键盘事件监听器吧 --------------------编程问答-------------------- 这是绝对不阻塞的,按下立即返回.
--------------------编程问答--------------------
嗯,有视图还是比较简单的。我做的是没有视图的。这个比较头痛!呵呵 --------------------编程问答--------------------
这个好像不行,需要实现的就是按下即返回的。 --------------------编程问答--------------------
谢谢您,不是您写的代码这样的要求。
是不带阻塞的,按下即返回。 --------------------编程问答--------------------
记忆中没有吧,楼主找到了告诉我们一声,谢谢
补充:Java , Java SE