ptor.err)
public static final FileDescriptor in = standardStream(0);
public static final FileDescriptor out = standardStream(1);
public static final FileDescriptor err = standardStream(2);
/**
* 返回handle为fd的FileDescriptor; 在传统的unix的系统中,fd为0,1,2分别表示为标准输入,标准输出和错误输出。
*/
private static FileDescriptor standardStream(int fd) {
FileDescriptor desc = new FileDescriptor();
desc.handle = set(fd);
return desc;
}
所以 setIn0(new BufferedInputStream(fdIn)); 就是将标准输入先封装成文件输入流(FileInputstream),再封装成BufferedInputStream(典型的装饰模式啊)
差不多这些了,大致过程都清楚了,但是仍有一些细节后续需要继续弄明白,如:为什么初始化必须为空,什么时候调用的initializeSystemClass()方法。