java虛擬機讀寫其餘進程的數據

在java中,process類提供了以下3個方法,用於讓程序和其餘子進程進行通訊。java

InputStream getErrorStream():獲取子進程的錯誤流。spa

InputStream getInputStream():獲取子進程的輸入流。code

OutputStream getOutputStream():獲取子進程的輸出流。對象

 

下面程序示範了讀取其餘進程的輸出信息:blog

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class ReadFromProcess {

    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
         Process p=Runtime.getRuntime().exec("javac");//運行javac命令,返回運行該命令的子進程p
         try {
             //以p進程的錯誤流建立BufferedReaderd對象,這個錯誤流是本程序的輸入流,對p進程則是輸出流
             BufferedReader br=new BufferedReader(new InputStreamReader(p.getErrorStream()));
             String buff=null;
             while((buff=br.readLine())!=null) {//讀取每一行數據,並賦給buff字符串。
                 System.out.println(buff);
             }
         }catch (IOException ioe) {
             ioe.printStackTrace();
         }
    }
}

javac進程------------>本程序進程

數據從p進程流向本程序所在的內存內存

程序輸出結果以下:字符串

數據流對p進程而言,它是輸出流,對於本程序而言,它則是輸入流。get

判斷輸入流仍是輸出流的角度:老是站在運行本程序所在內存的角度。io

相關文章
相關標籤/搜索