System.getProperties().list(System.out);
可以正常输出到屏幕但是 PrintWriter tmpout;
                try {
                        tmpout = new PrintWriter(new BufferedWriter(new FileWriter("/root/t.test")));                System.getProperties().list(tmpout);
                System.out.println(System.getProperties().getProperty("world"));                } catch (IOException e){
                        System.out.println("worng");
                }
的时候却没有办法输出到 tmpout, 下面打印的测试语句可以打印出正常的结果, 也不会打印出"wrong"
/root/t.test可以正常建立, 但是不论执行多少遍,字节都为0从jdk的帮助中可以看到:
 void list(PrintStream out) 
          Prints this property list out to the specified output stream. 
 void list(PrintWriter out) 
          Prints this property list out to the specified output stream. 我这样写应该是可以的呀, 什么地方出错了呢?

解决方案 »

  1.   

    tmpout 根本就没用到,要么重定向:System.setOut( tmpout)试试吧
      

  2.   

    汗, 已经发现System.getProperties().list(PrintWriter out);
    之后必须自己调用PrintWriter 对象的 flush()方法(close()也可以, 
    应该是因为close()方法包含了flush())......真是丢人了TT开始我曾想System.getProperties().list(PrintWriter out)为什么不自己
    写完之后刷新呢?想了一下很快就明白了这就是"弱耦合", 每个对象应该只做
    自己的事情, System.getProperties().list(PrintWriter out)的作用只是输出,
    对象的刷新应该由对象自己来负责
    屏幕输出中System.out对象应该是自己控制每间隔一定毫秒数刷新的那么, 这个帖子作为散分贴把, 尽管不太多^^
    (不知道上面我想的对不对..欢迎高手指正)