IO_打印流

本文深入解析Java中的PrintStream类,探讨其在控制台和文件输出中的应用,包括构造方法、自动刷新机制及如何重定向输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PrintStream是处理流、装饰流(用于System.out),打印的所有字符都使用平台 的默认字符编码转换为字节。在需要写入字符而不是写入字节的情况下,应该使用 PrintWriter 类
PrintStream功能:
1.PrintStream 能够方便地打印各种数据值表示形式
2.自动刷新

在这里插入图片描述
程序-(写入)->PrintStream(OutputStream)-(写入)->文件

constructiondescription
PrintStream(File file, String csn)创建具有指定文件和字符集且不带自动行刷新的新打印流。
PrintStream(String fileName, String csn)创建具有指定文件名称和字符集且不带自动行刷新的新打印流。
PrintStream(OutputStream out, boolean autoFlush, String encoding)创建新的打印流。
Modifier and Typefunctiondescription
PrintStreamPrintStream append(char c)将指定字符添加到此输出流。

测试程序:

public class PrintStreamTest {
	public static void main(String[] args) throws FileNotFoundException {
//		System.out默认输出都控制台,因此打印流ps将内容打印到控制台
		PrintStream ps = System.out;
		ps.println("打印流");
		ps.println(true);
//		打印流ps将内容打印到文件流test.txt(+true能自动刷新)
		ps = new PrintStream(new BufferedOutputStream(new FileOutputStream("print.txt")),true);
		ps.println("打印流");
		ps.println(true);
		ps.close();/*关闭FileOutputStream*/
//		重定向输出端
		System.setOut(ps);
		System.out.println("原本是打印到控制台的,重定向输出端为当前这个PrintStream");
//		重定向回控制台(+true能自动刷新)
		System.setOut(new PrintStream(new BufferedOutputStream(new FileOutputStream(FileDescriptor.out)),true));
		System.out.println("我又回来控制台啦!");
		ps.close();/*关闭FileOutputStream*/
	}
}

测试结果:

  1. 控制台:
打印流
true
我又回来控制台啦!
  1. print.txt文件:
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值