MyTest.java package ZHANG.IO.TestINOUT; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class MyTest { public static void main(String[] args) { System.out.println("hi:"); BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); while(true){ try { String info = buf.readLine(); if(info!= null){ System.out.println("hi:"+ info); }else{ break; } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } TestInOut.java package ZHANG.IO.TestINOUT; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; public class TestInOut implements Runnable{ Process p ; public TestInOut(){ try { p = Runtime.getRuntime().exec("java MyTest"); new Thread(this).start(); } catch (IOException e) { e.printStackTrace(); } } public void send(){ OutputStream os = p.getOutputStream(); try { while(true){ System.out.println("写了吗"); os.write("help/r/n".getBytes()); System.out.println("写了"); } } catch (IOException e) { e.printStackTrace(); } } public void run() { InputStream is = p.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); String strInfo; try { while(true){ strInfo = br.readLine(); if(strInfo!=null){ System.out.println("i reading Info:"+strInfo); }else{ return ; } } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { TestInOut ti = new TestInOut(); ti.send(); } }