关于java中的System.setOut的问题

publicclassRedirectOutputStream{publicstaticvoidmain(String[]args){try{PrintStreamout... 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();
}
}
}
这里我发现就是PrintStream ps = new PrintStream("e:/log.txt");
System.setOut(ps);这两句话是什么意思?还有就是在最后又有了这一句System.setOut(out);这一句话表示什么意思?
展开
 我来答
紫霜落枫
2014-11-12 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:54
采纳率:0%
帮助的人:47.1万
展开全部
public static void main(String[] args) {
try {
PrintStream out = System.out; // 先把系统默认的打印输出流缓存
PrintStream ps = new PrintStream("e:/log.txt"); // 创建一个打印输出流,输出的目标是:E盘的log.txt文件
System.setOut(ps);//把创建的打印输出流赋给系统。即系统下次向 ps输出
int age = 18;
// 如果上面没有写System.setOut(ps);下面这些默认回输出到java控制台,如果谢了,就会输出到log.txt文件
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();
}
手机用户35904
推荐于2018-05-06 · 超过73用户采纳过TA的回答
知道答主
回答量:190
采纳率:0%
帮助的人:76.2万
展开全部
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

提交
取消

辅 助

模 式