一、在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) |