java 键盘获取一个字符问题?

hnrainll 2013-01-11 09:16:33
java 键盘获取一个字符问题?

想从键盘获取一个字符,不按回车。接着获取下面的字符!

但是read()是带阻塞的,只有敲回车后才能往下执行。

想问有没有不带阻塞的!
...全文
287 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
记忆中没有吧,楼主找到了告诉我们一声,谢谢
hnrainll 2013-01-14
  • 打赏
  • 举报
回复
引用 4 楼 qunhao 的回复:
不知道楼主要的效果是不是这样。 Java code?123456 InputStreamReader reader=new InputStreamReader(System.in); BufferedReader bf=new BufferedReader(reader); Str……
谢谢您,不是您写的代码这样的要求。 是不带阻塞的,按下即返回。
hnrainll 2013-01-14
  • 打赏
  • 举报
回复
引用 5 楼 Candylibin 的回复:
都是堵塞式的吧 public void PrintWriterDemo throws IOExcepton { BufferedReader bufr = new BufferedReader(InputStreamReader(System.in)); //设置成true,自动刷新 PrintWriter out = new PrintWr……
这个好像不行,需要实现的就是按下即返回的。
hnrainll 2013-01-14
  • 打赏
  • 举报
回复
引用 8 楼 kexinmei 的回复:
这是绝对不阻塞的,按下立即返回. 引用 7 楼 kexinmei 的回复:如果你有视图的话,可以搞一个键盘事件的监听器,监听所有键盘按下事件,从而获得每个字符。 Java code?12345 this.addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e){ ……
嗯,有视图还是比较简单的。我做的是没有视图的。这个比较头痛!呵呵
昕玫 2013-01-13
  • 打赏
  • 举报
回复
这是绝对不阻塞的,按下立即返回.
引用 7 楼 kexinmei 的回复:
如果你有视图的话,可以搞一个键盘事件的监听器,监听所有键盘按下事件,从而获得每个字符。 Java code?12345 this.addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e){ String k……
昕玫 2013-01-13
  • 打赏
  • 举报
回复
如果你有视图的话,可以搞一个键盘事件的监听器,监听所有键盘按下事件,从而获得每个字符。

 this.addKeyListener(new KeyAdapter(){    	
     public void keyPressed(KeyEvent e){    		    		
         String keyText = KeyEvent.getKeyText(e.getKeyCode());
         System.out.print(keyText + " ");
     });
么有视图的话,楼主尝试自己实现一个键盘事件监听器吧
oZouBianBian 2013-01-13
  • 打赏
  • 举报
回复
scanner
Candylibin 2013-01-13
  • 打赏
  • 举报
回复
都是堵塞式的吧 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(); }
xtfgy2012 2013-01-12
  • 打赏
  • 举报
回复
java获取键盘的输入方式,都是在System.in这个输入流上做的包装啊 而这是一个InputStream类型,所以所有的获取输入的方式都是阻塞的 你想直接从流上着手,我个人推测不太可能。
hnrainll 2013-01-12
  • 打赏
  • 举报
回复
就像单纯的用IO去做,不太想用线程!! 最主要的问题就是java iO的非阻塞问题。
qunhao 2013-01-12
  • 打赏
  • 举报
回复
不知道楼主要的效果是不是这样。

                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);
                }
xtfgy2012 2013-01-11
  • 打赏
  • 举报
回复
想让程序往下继续执行可以考虑下多线程嘛

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧