Java 打印流

217 阅读2分钟

打印流

Snipaste_2022-12-24_21-29-39.png

  • 分类:打印流一般是指:PrintStream,PrintWriter两个类
  • 特点
    • 打印流只操作文件目的地,不操作数据源
    • 特有的写出方法可以实现数据原样写出
      • 打印:97 文件中:97
      • 打印:true 文件中:ture
    • 特有的写出方法,可以实现自动刷新,自动换行
      • 打印一次数据 = 写出 + 换行 + 刷新

字节打印流

构造方法

构造方法说明
public PrintStream(OutputStream/File/String)关联字节输出流/文件/文件路径
public PrintStream(String fileName, Charset charset)指定字符编码
public PrintStream(OutputStream out, boolean autoFlush)自动刷新
public PrintStream(OutputStream out, boolean autoFlush,String encoding)指定字符编码且自动刷新
  • 字节流底层没有缓冲区,开不开自动刷新都一样

成员方法

成员方法说明
public void write(int b)常规方法:规则跟之前一样,将指定的字节写出
public void println(Xxx xx)特有方法:打印任意数据,自动刷新,自动换行
public void print(Xxx xx)特有方法:打印任意数据,不换行
public void printf(String format, Object... args)特有方法:带有占位符的打印语句,不换行
  • printf方法示例
    • ps.printf("%s爱上了%s", "阿珍", "阿强");
    • 输出:阿珍爱上了阿强
  • 占位符还有很多

字符打印流

构造方法

构造方法说明
public PrintWriter(Writer, File, String)关联字节输出流/文件/文件路径
public PrintWriter(String fileName, Charset charset)指定字符编码
public PrintWriter(Write w, boolean autoFlush)自动刷新
public PrintWriter(OutputStream out, boolean autoFlush, Charset charset)指定字符编码且自动刷新
  • 字符流底层有缓冲区,想要自动刷新需要手动开启

成员方法

成员方法说明
public void write(...)常规方法:规则跟之前一样,写出字节或者字符串
public void println(Xxx xx)特有方法:打印任意类型的数据并且换行
public void print(Xxx xx)特有方法:打印任意类型数据,不换行
public void printf(String format, Object... args)特有方法:带有占位符的打印语句,不换行

System.out.println()

  • 在System类中,定义了一个特殊的静态变量out
private static final PrintStream out = null;
  • 这个打印流对象是在虚拟机启动时虚拟机自动创建,这个对象默认指向控制台
  • 这是一个特殊的打印流,叫做系统中的标准输出流,不能关闭,在系统中是唯一的