如题,看了书上的概念,但是还是不明白实际中的用途,请问有人能举个简单的例子说明一下吗?

解决方案 »

  1.   

    采用 Runtime.exec 去开启运行另外一个程序之后,使用 Process.getInputStream 可以读取新开启的程序的 System.out.print 输出的内容。同样,使用 Process.getOutputStream 输出一些内容,新开启的程序的 System.in 可以读得到。关于 InputStream 的更多讨论,推荐文章:
    http://www.regexlab.com/zh/encoding.htm
      

  2.   

    谢谢光杆兵,请问:
     public static void main(String args[]) throws Exception
      {
     
             Runtime runtime=Runtime.getRuntime();
    Process process=runtime.exec("java E:\\T1");
    InputStream is=process.getInputStream();
    System.out.println(is.available());

      }在这段程序中,E:\\T1是一个class,里面的main方法打印出一行"******",但是System.out.println(is.available()); 这句执行的结果却是0,请问这是什么原因呢?
      

  3.   

    available()函数在此InputStream里没有实现
      

  4.   

    不知道 Process.getInputStream 返回的 InputStream 的具体实现类有没有实现 available() 方法。楼主可以试试直接读取 read或者BufferedReader in = new BufferedReader(new InputStreamReader(Process.getInputStream()));
    while((line = in.readLine()) != null)
    {
        //...
    }
      

  5.   

    Process pro = Runtime.getRuntime().exec("cmd /c java TestExe",null,new File("D:/"));

    InputStream is = pro.getErrorStream();
    byte b;
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    while ((b = (byte) is.read()) != -1) {
    baos.write(b);
    }


    System.out.println(baos.toString());