如何将System.in读取的流用String代替?这样写对吗?
String s = "test\n";
InputStream ss = new StringBufferInputStream(s);
上面这句在Eclipse里会出现不建议使用的方法,我要如何修改呢?
谢谢。

解决方案 »

  1.   

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

  2.   

    难道你们自己不专门编写一个键盘的输入类,我来推荐一个:流行的savitchin类,有用过吗?我找不到在哪下载了,只能把代码都贴上来了,呵呵.看我的帖子
      

  3.   

    BufferedReader in
       = new BufferedReader(new InputStreamReader(System.in));
    try {
    String s = in.readLine();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
      

  4.   

    用StringReader。不过我看不懂你在说什么,什么叫“将键盘输入改成一个字符为题输入”?
      

  5.   

    不好意思,是我没有说清楚。
    就是将System.in所取得的数据输入改成别的方式取得数据,
    比如原来要从键盘输入:1234,现在要将这个输入流固定为String s = "1234",不从键盘取得数据,而是从一个字符串变量取得。但要将s转换成InputStream有格式。这个流将用于telnet的客房端程序。
      

  6.   

    其实只要将一个String变量转换成InputStream就行了。
    但是要如何转换呢?
      

  7.   

    try{
      String sFirst;
      java.io.BufferedReader in = new java.io.BufferedReader( new java.io.InputStreamReader(System.in));
      System.out.print("Please input :");
      sFirst = in.readLine();
      System.out.print("You input is :"+sFirst );
    }catch(Exception e){}
      

  8.   

    嗯,这是个问题。StringReader好像不能向InputStream转,貌似只能用ByteArrayInputStream:
    ByteArrayInputStream in = new ByteArrayInputStream( s.getBytes() );
      

  9.   

    StringBufferInputStream已经过时了,java在后续版本里将不再支持这个类。
    所以如果要将String转成InputStream只能用
    ByteArrayInputStream bais = new ByteArrayInputStream(str.getBytes());