当前位置:编程学习 > JAVA >>

Java虚拟机读写其他进程的数据

使用Runtime对象的exec()方法可以获得其他进程的Process对象,Process对象代表由该Java程序启动的子进程,Process类提供了如下3个方法,用于让程序和其子进程进行通讯。

InputStream getErrorStream():获取子进程的错误流

InputStream getInputStream():获取子进程的输入流

OutputStream getOutputStream():获取子进程的输出流

下面的代码实现了获取子进程的错误输出

[java]
import java.io.BufferedReader; 
import java.io.InputStreamReader; 
 
 
public class Test { 
    public static void main(String[] args) throws Exception 
    { 
         
        Process p=Runtime.getRuntime().exec("adb"); 
        BufferedReader br=new BufferedReader(new InputStreamReader(p.getErrorStream())); 
        String str=null; 
        while((str=br.readLine())!=null) 
        { 
            System.out.println(str); 
        } 
 
    } 
     
 
 
     

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


public class Test {
 public static void main(String[] args) throws Exception
 {
  
  Process p=Runtime.getRuntime().exec("adb");
  BufferedReader br=new BufferedReader(new InputStreamReader(p.getErrorStream()));
  String str=null;
  while((str=br.readLine())!=null)
  {
   System.out.println(str);
  }

 }
 


 
}
下面程序演示两个Java程序通讯

这个数父进程

[java]
import java.io.OutputStream; 
import java.io.PrintStream; 
 
 
public class Test { 
    public static void main(String[] args) throws Exception 
    { 
        Process p=Runtime.getRuntime().exec("java work"); 
        OutputStream os=p.getOutputStream(); 
        PrintStream ps=new PrintStream(os); 
        ps.println("张译成"); 
        os.close(); 
         
         
    } 
     
 
 
     

import java.io.OutputStream;
import java.io.PrintStream;


public class Test {
 public static void main(String[] args) throws Exception
 {
  Process p=Runtime.getRuntime().exec("java work");
  OutputStream os=p.getOutputStream();
  PrintStream ps=new PrintStream(os);
  ps.println("张译成");
  os.close();
  
  
 }
 


 
}

下面是子进程

[java]
import java.io.FileOutputStream; 
import java.io.PrintStream; 
import java.util.Scanner; 
 
public class work { 
    public static void main(String[] args) throws Exception{ 
        Scanner sc=new Scanner(System.in); 
        FileOutputStream fis=new FileOutputStream("work"); 
        PrintStream ps=new PrintStream(fis); 
        System.setOut(ps); 
        while(sc.hasNextLine()) 
        { 
            System.out.println(sc.nextLine()); 
        } 
        ps.close(); 
 
    } 
 

import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.Scanner;

public class work {
 public static void main(String[] args) throws Exception{
  Scanner sc=new Scanner(System.in);
  FileOutputStream fis=new FileOutputStream("work");
  PrintStream ps=new PrintStream(fis);
  System.setOut(ps);
  while(sc.hasNextLine())
  {
   System.out.println(sc.nextLine());
  }
  ps.close();

 }

}

 

补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,