Java打印流(PrintStream/PrintWriter)

本文介绍了Java中的打印流类PrintStream和PrintWriter,它们用于方便地输出各种类型数据,如小数、整数和字符串。PrintStream作为字节流,适用于标准输出和文件输出,而PrintWriter作为字符流,提供更高灵活性。两者都没有输入流,主要用于打印信息到特定位置,如显示器或文件。文章通过示例代码展示了如何使用它们进行输出以及如何改变输出位置。在使用后,必须调用close方法来确保输出完成。
摘要由CSDN通过智能技术生成

在这里插入图片描述

概念

打印流是输出信息最方便的类,注意包含字节打印流PrintStream和字符打印流PrintWriter。打印流提供了非常方便的打印功能,可以打印任何类型的数据信息,例如:小数,整数,字符串。而且永远不会抛出IOException异常。

  • PrintStream字节打印流
  • PrintWriter字符打印流

一般使用PrintWriter,灵活性更强

打印流只有输出流,没有输入流,主要用于打印,会把你的信息指定到一个位置(显示器或文件等)

PrintStream

由图可知PrintStream的直接父类是FilterOutputStream,顶级父类是OutputStream(字节流)
在这里插入图片描述
该类提供了7个构造方法,根据应用场景进行操作,具体方法可查看JDK文档或百度
在这里插入图片描述
经典用法
System.out:表示标准输出,用来往控制台输出数据,控制台默认打印的是hello world(默认打印是在显示器打印,可以进行修改数据输出的位置)

PrintStream out = System.out;
out.print("hello world");
out.close();

下图为PrintStream类的print方法源码,可以看出print的底层使用的write方法,所以也可以直接调用write方法
在这里插入图片描述

writer方法
因为writer方法底层是按照字节打印的(PrintStream本身就是字节流),所以getBytes方法(String类中)得到一个操作系统默认的编码格式的字节数组

PrintStream out = System.out;
try {
    out.write("hello world".getBytes());
} catch (IOException e) {
    e.printStackTrace();
}
out.close();

修改打印流的输出位置/设备
输出到E盘下的文件,此时代码执行过后,hello world则输出到该文件(使用setOut方法,System类)
在这里插入图片描述

String s = "E:\\test.txt";
try {
    System.setOut(new PrintStream(s));
    System.out.println("hello world");
} catch (FileNotFoundException e) {
    e.printStackTrace();
}

PrintWriter

由图可知PrintWriter的直接父类Writer
在这里插入图片描述
该类提供了八个构造器,根据不同的场景选择操作,具体方法可查看JDK文档或百度
在这里插入图片描述

总体上操作方法与PrintStream相同

默认方式
因为这里的System.out未设置,所以默认是显示器输出

PrintWriter printWriter = new PrintWriter(System.out);
printWriter.print("hi,你好");
printWriter.close();

指定路径的输出方式
PrintWriter中传入的是指定路径,所以此时代码的执行结果在相对于的文件中

PrintWriter printWriter = null;
try {
    printWriter = new PrintWriter(new FileWriter("E:\\test.txt"));
} catch (IOException e) {
    e.printStackTrace();
}
printWriter.print("hi,你好");
printWriter.close();

注意:PrintStream和PrintWriter的操作中,最后必须要close关闭,因为实际的输出方法在close方法中,可自行查看底层源码


  • 26
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 30
    评论
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

墨辰JC

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

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

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

打赏作者

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

抵扣说明:

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

余额充值