java程序与其它进程的数据通信
在java程序中可以用Process类的实例对象来表示子进程,子进程的标准输入和输出不再连接到键盘和显示器,
而是以管道流的形式连接到父进程的一个输出流和输入流对象上。
调用Process类的getOutputStream,getInputStream方法可以获得连接到了进程的输出流和输入流对象
事例:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import org.omg.CORBA.portable.InputStream;
import org.omg.CORBA_2_3.portable.OutputStream;
public class TestInOut implements Runnable{
Process p = null;
public TestInOut(){
try{
p = Runtime.getRuntime().exec("java MyTest");
new Thread(this).start();
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String args[]){
TestInOut tio = new TestInOut();
tio.send();
}
public void send(){
try{
OutputStream ops= (OutputStream) p.getOutputStream();
while(true){
ops.write("help".getBytes());
}
}catch(Exception e){
e.printStackTrace();
}
}
public void run() {
p.getInputStream();
InputStream in = (InputStream) p.getInputStream();
BufferedReader bfr=new BufferedReader(new InputStreamReader(in));
try {
String strLine = bfr.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}