解决方案 »

  1.   

    out1使用的是System.out,你在上面把它close掉了当然不能输出了。把out1.close();改成:
    out1.flush();即可
      

  2.   

    在System.out.println执行时ensureOpen()方法,此方法是检查this.out是否为空,如果为空是不进行输出的。out1.close();已经把out关闭了。你可以看下源码就明白了。
      

  3.   

    import java.io.*; public class example {
     public static void main(String args[]){
     PrintWriter out1=null;
     out1=new PrintWriter(System.out);
     out1.print("Hello ,world1!");
     System.out.println("Hello,world3!");//为何不能输出?
     out1.close(); //放在后面试试
    }
     }
      

  4.   

    out1=new PrintWriter(System.out);这里的out1指向了输出流,但是out1.close();表示已经关闭了输出流,所以out1.close();之后的输出代码肯定输出不了字符串。
      

  5.   

    高级流关闭会一并关闭其下包装的所有的节点流和处理流
    因此System.out所指向的标准流也会关闭
    再调用out指向的流方法就无效