package cn.itcast.process;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
public class ProcessTest implements Runnable{
private Process process = null;
public ProcessTest() {
try {
process = Runtime.getRuntime().exec("java MyTest");
new Thread(this).start();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
ProcessTest processTest = new ProcessTest();
processTest.send();
}
public void send()
{
OutputStream outputStream = process.getOutputStream();
while(true)
{
try {
outputStream.write("this is good\r\n".getBytes());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void run() {
InputStream inputStream = process.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String str = null;
try {
while(true)
{
str = bufferedReader.readLine();
System.out.println(str);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
//理解下面这句话就能更加容易的理解上面的代码
在java程序中可以用Process类的实例对象来表示子进程,子进程的标准输入和输出不在连接到键盘和显示器,而是以管道流的形式连接到父进程的
一个输出流和输入流对象上-à好好理解这句代码就能看懂那个程序。