关于java中System中setOut( )输出流的问题

先谢谢了。以前我通过fileoutputstream中的.write("内容"),创建指定的文件,并向文件中写入内容。今天我看到一个例子,代码如下:publicclass... 先谢谢了。
以前我通过fileoutputstream中的.write( " 内容"),创建指定的文件,并向文件中写入内容。今天我看到一个例子,代码如下:

public class RedirectOutputStream {
public static void main(String[] args) {
try {
PrintStream out = System.out;
PrintStream ps = new PrintStream("e:/log.txt");
System.setOut(ps);
int age = 18;
System.out.println("年龄定义,初始值18");
String sex = "女";
System.out.println("性别定义,女");
String info = "这是一个" + sex + "孩子" + "年龄为" + age;
System.out.println("整合了两个变量" + info);
System.setOut(out);
System.out.println("程序运行完毕");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}

我想问一下,
1.这段代码是如何实现创建文件,并向里面写内容的呢?因为我没有看到类似write("")的方法,仅仅是打印system.out.println( )是如何写入呢?

2.最先面的三行,是什么意思?为什么要传ps呢?
PrintStream out = System.out;
PrintStream ps = new PrintStream("e:/log.txt");
System.setOut(ps);

3.最后的倒数2行,是什么意思?是写入结束吗?为什么要传out呢?
System.setOut(out);

谢谢了!!!
展开
 我来答
静息态
推荐于2017-11-25 · TA获得超过113个赞
知道答主
回答量:144
采纳率:0%
帮助的人:75万
展开全部
1.PrintStream ps = new PrintStream("e:/log.txt"); //新建一个打印对象
System.setOut(ps); //重定项屏幕输出到ps对象中
2. PrintStream out = System.out;
System.setOut(out); //显然这里又定位到屏幕输出System.out.println
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式