java 键盘获取一个字符问题?想从键盘获取一个字符,不按回车。接着获取下面的字符!但是read()是带阻塞的,只有敲回车后才能往下执行。想问有没有不带阻塞的!

解决方案 »

  1.   

    就像单纯的用IO去做,不太想用线程!!最主要的问题就是java  iO的非阻塞问题。
      

  2.   

    java获取键盘的输入方式,都是在System.in这个输入流上做的包装啊而这是一个InputStream类型,所以所有的获取输入的方式都是阻塞的你想直接从流上着手,我个人推测不太可能。
      

  3.   

    不知道楼主要的效果是不是这样。                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);
                    }
      

  4.   

    都是堵塞式的吧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();
    }
      

  5.   

    如果你有视图的话,可以搞一个键盘事件的监听器,监听所有键盘按下事件,从而获得每个字符。 this.addKeyListener(new KeyAdapter(){    
         public void keyPressed(KeyEvent e){         
             String keyText = KeyEvent.getKeyText(e.getKeyCode());
             System.out.print(keyText + " ");
         });
    么有视图的话,楼主尝试自己实现一个键盘事件监听器吧