import java.io.*;
public class ReadFromProcess
{
public static void main(String[] args)
throws IOException
{
// 运行javac命令,返回运行该命令的子进程
Process p = Runtime.getRuntime().exec("javac");
try(
// 以p进程的错误流创建BufferedReader对象
// 这个错误流对本程序是输入流,对p进程则是输出流
BufferedReader br = new BufferedReader(new
InputStreamReader(p.getErrorStream()))
)
{
String buff = null;
// 采取循环方式来读取p进程的错误输出
while ((buff = br.readLine()) != null)
{
System.out.println(buff);
}
}
}
}
上述代码中的Process是抽象类,那么getErrorStream也是个抽象方法,对p.getErroStream()感到困惑,这个抽象方法并没有得到实现,为什么代码可以正常运行? |
|