System类中的out成员变量是Java的标准输出流,程序常用它来输出调试信息,out成员变量别定义为final类型的,无法直接重新复制,但是可以通过setOut()方法来设置新的输出流。本实例利用该方法实现了输出流的重定向,把它指向一个文件输出流,从而实现了日志功能。效果如图:


代码实现:
public static void main(String[] args) {
try{
System.out.println("请输入要保存的文章:");
Scanner sc = new Scanner(System.in);
String paragraph = sc.nextLine();
//保存原输出流
PrintStream out = System.out;
//创建新的输出流
PrintStream ps = new PrintStream("./log.txt");
//使用新的输出流
System.setOut(ps);
System.out.println(paragraph);
// 恢复原有输出流
System.setOut(out);
System.out.println("程序运行完毕,请查看日志文件。");
} catch (Exception e) {
e.printStackTrace();
}
}
实例的应用的关键技术是调用了System类的setOut()方法改变了输出流,另外System类还有out、err、in三种变量具体用法可以自行去了解.
此代码只能保存单次运行的内容,再次运行会覆盖上次的内容!!
&spm=1001.2101.3001.5002&articleId=144270148&d=1&t=3&u=b5430227f3ec4e68ae349112f7d8827c)
895

被折叠的 条评论
为什么被折叠?



