java中定义的异常是为了防止程序运行时出项不应该出现的情况而导致程序的崩溃,但是,出现了不应有的情况而不抛出异常,怎么办呢?例如,在上例的练习的时候,为什么总是打印出null呢?原因就是发生了从子进程中没有读到数据时没有抛出异常,也没有做任何的处理,只需要在读取一行的时候作出判断,为空就返回。
我们打印出来得内容为什么不是我们输入到缓冲区的呢?是不是当缓冲区慢的时候,PipedOutputStream的write方法就处于阻塞状态!
当写结束的时候,一定要关闭流资源
父进程结束的时候调用destory方法结束子进程,
小细节可以提高代码的运行效率:
for(int =0;i<arr.length();i++)的效率没有
int m=arr.length();
for(int=0;i<m;++)效率高,因为不需要每次都去arr里面去找length();
while(true){
byte [] buff = new byte[1024];
......
}
就没有
byte [] buf=new byte[1024];
while(true){
....对buf操做的代码,
}的效率高,因为每一个循环再对内存中就要产生一次数组对象,上面那个只需一次。