Chinaunix首页 | 论坛 | 博客
  • 博客访问: 544279
  • 博文数量: 151
  • 博客积分: 7010
  • 博客等级: 少将
  • 技术积分: 1405
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-22 14:32
文章分类

全部博文(151)

文章存档

2011年(1)

2010年(23)

2009年(1)

2008年(126)

我的朋友

分类: Java

2008-05-22 17:46:55

一、在java程序中可以用Process类的实例对象来表示子进程,子进程的标准输入和输出不再连接到键盘和显示器,而是以管道流的形式连接到父进程的一个输出流和输入流对象上。
 
二、调用Process类的getOutputStream和getInputStream方法可以获得连接到子进程的输出流和输入流对象。
 
例子:在TestInOut类中启动java.exe命令来执行另一个MyTest类,TestInOut和MyTest通过进程间的管道相互传递数据。
  public class TestInOut implements Runnable
  {
   private Process p = null;
   
   public void TestInOut()
   {
    try
    {
     p = Runtime.getRuntime().exec("java MyTest");
    } catch (IOException e)
    {
     e.printStackTrace();
    }
   }
   
   public static void main(String[] args)
   {
    TestInOut tio = new TestInOut();
    tio.send();
    System.out.println("asdf");
   }
   
   public void send()
   {
    OutputStream ops = p.getOutputStream();
    while(true)
    {
     try
     {
      ops.write("reply:help\r\n".getBytes());
     } catch (IOException e)
     {
      e.printStackTrace();
     }
    }
   }
   
   public void run()
   {
    InputStream  ips = p.getInputStream();
    while(true)
    {
     BufferedReader bfr = new BufferedReader(new InputStreamReader(ips));
     try
     {
      String strLine = bfr.readLine();
     } catch (IOException e)
     {
      e.printStackTrace();
     }
    }
   }
  }
阅读(1833) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~