JavaSE PrintStream(标准字节输出流)

PrintStream是Java提供的一种用于方便数据输出的类,它默认输出到控制台,不会抛出IOException,并提供了print()和println()方法支持多种数据类型的输出。其执行原理涉及到BufferedWriter,且在特定条件下会自动刷新缓冲区。本文还包含了PrintStream的测试用例及在日志工具中的应用。
摘要由CSDN通过智能技术生成

PrintStream(标准字节输出流)

一、特点

  • 使用OutputStream输出数据,需要将数据变为字节数组输出,使用起来不方便,为了解决使用OutputStream输出数据的不足,Java提供了一套专门输出数据的类PrintStream(标准字节输出流)和PrintWriter(标准字节输入流),这种设计模式,在Java中叫装饰模式,相当于将一个功能不足的操作类,通过某些类的包装,形成更好用的工具类
  • 只负责数据的输出,不负责数据的读取,默认输出到控制台
  • PrintStream不会抛出IOException异常,不需要手动关闭流
  • PrintStream在OutputStream的基础上添加了print()/println()方法,可以打印各种数据类型
    void print(任意类型的值)
    void println(任意类型的值并换行)
  • 如果使用集成父类的write方法写数据,那么查看数据的时候会查询编码表 97->a
    如果使用自己特有的方法print/println方法写数据,写的数据原样输出 97->97
  • PrintStream最终输出的总是byte数据

二、PrintStream执行原理

  • 对于PrintStream,所有println方法都在内部调用相应的print方法,比如println(charx)的方法体就是调用print(x),再写入一个平台相关的换行符,PrintStream构建时会在内部new一个BufferedWriter,所有print方法都在内部调用这个Writer的write方法(write(String)或write(char[]))——对于print(char[]),直接调用write(char[]),对于其他的print方法,先用String.valueOf获得参数的字符串表示,然后调用write(String)
  • PrintStream是字节流,有处理raw byte的方法,write(int)和write(byte[],int,int);PrintWriter是字符流,它没有处理raw byte的方法
  • PrintStream 的autoflushing机制:在输出byte数组、调用println方法、输出换行符或者byte值10(即\n)时自动调用flush方法

三、测试用例

import java.io.FileOutputStream;
import java.io.PrintStream;

public class PrintStreamTest {
   
	public static void main(String[] args
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jayco江柯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值