这个问题怎么解决? 可能你也不知道的....
第一次在论坛提问.
public static void main(String[] args) throws FileNotFoundException { PrintStream out = new PrintStream("d:/d.txt"); System.setOut(out); //改变了标准输出流 System.out.println(System.out == out); // 标记1 文件中打印true System.out.println("某些数据."); //这样的话会像上面的文件中写入数据 // 问题: 我怎么样才能改回标准输出流呢? 在setOut前没有保存引用. // 疑惑: System类的out字段是public static final 的, 为什么可以改变呢? //标记1那里居然打印的是true }PrintStream out = new PrintStream("d:/d.txt");PrintStream systemOut = System.out;//先把System.out取出来保存下来System.setOut(out);System.out.println(System.out == out);System.out.println("某些数据.");System.setOut(systemOut);//然后再设置回去System.out.println("变回来了!");
[解决办法]
在System里的initializeSystemClass方法可以看到如何赋予标准输出流
你可以这样
FileOutputStream fdOut = new FileOutputStream(FileDescriptor.out); System.setOut(new PrintStream(new BufferedOutputStream(fdOut, 128), true)); System.out.println("某些数据2.");
[解决办法]