【打印流】常用方法以及应用场景

本文介绍了Java中的打印流PrintStream和PrintWriter的用法,包括它们的构造方式、常用方法(如println和write),以及在输出语句重定向中的应用。

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

打印流常用方法以及应用场景

1.打印流是什么?

可以实现更方便、更高效地写数据,分为字节打印流PrintStream和字符打印流PrintWriter,使用方便,性能高效,底层封装了高效流

  • 字节打印流PrintStream:继承OutputStream,因此支持写字节的相关方法
  • 字符打印流PrintWriter:继承Writer,因此支持写字符的相关方法

2.PrintStream常用方法

  • public PrintStream(OutputStream/File/String):建对象并关联文件

  • public void println(内容):打印任意类型数据

    注意:要将数据追加写入到文件,先要封装原始流对象,才可以追加写入

    public class Demo01 {
        public static void main(String[] args) throws Exception {
            //public PrintStream(OutputStream/File/String); 建对象并关联文件
            PrintStream ps = new PrintStream("day10\\Demo01.txt");
            //封装原始流对象,追加写入
            PrintStream ps1 = new PrintStream(new FileOutputStream("day10\\Demo01-1.txt",true));
            //public void println(内容); 写任意类型数据
            ps.println(100);
            ps.println(3.14);
            ps.println('哈');
            ps.println("郝佳乐");
            ps.println(true);
            //释放资源
            ps.close();
        }
    }
    
其他方法
  • public PrintStream (String fileName, Charset charset); 可以指定写出去的字符编码(写中文时)
  • public PrintStream (OutputStream out, boolean autoFlush); 可以指定实现自动刷新
  • public PrintStream (OutputStream out, boolean autoFlush, String encoding); 可以指定实现自动刷新,并可指定字符的编码(写中文时)
  • public void write(int/byte[]/byte[]一部分); 可以支持写字节数据出去

3.PrintWriter常用方法

  • public PrintWriter(OutputStream/Writer/File/String):创建对象并关联对象

  • public void println(内容):打印任意类型数据

    public class Demo02 {
        public static void main(String[] args) throws IOException {
            //public PrintWriter(OutputStream/Writer/File/String); 创建对象并关联文件
            PrintWriter pw = new PrintWriter("day10\\Demo02.txt");       
            //注意事项:封装原始流,才能通过构造开启追加写入
            //PrintWriter pw = new PrintWriter(new FileWriter("day10\\Demo02.txt",true));
            //public void println(内容); 写任意类型数据
            pw.println(100);
            pw.println(3.14);
            pw.println('哈');
            pw.println("郝佳乐");
            pw.println(true);
            //释放资源
            pw.close();
        }
    }
    
其他方法
  • public PrintWriter(String fileName, String encoding); 可以指定写出去的字符编码(写中文时)
  • public PrintWriter(OutputStream out/Writer, boolean autoFlush); 可以指定实现自动刷新
  • public PrintWriter(OutputStream out, boolean autoFlush, String encoding); 可以指定实现自动刷新,并可指定字符的编码(写中文时)
  • public void write(int/String/char[]/…); 可以支持写字符数据出去

4.打印流应用

输出语句的重定向(指定打印数据的目的地),前面的代码目的地是控制台,如果项目上线就看不到了,可以使用打印流,指定打印目的地,实现输出语句的重定向

  • public static final PrintStream out=null; out本质上是一个PrintStream,初始化值null表示将数据打印到控制台
  • System.setOut(new PrintStream(“路径”)) 借助System的setOut修改out的值为指定文件路径
public class Demo01 {
    public static void main(String[] args) throws Exception {
        //打印在控制台
        System.out.println("床前明月光");
        System.out.println("疑是地上霜");
        //输出语句重定向
        System.setOut(new PrintStream("day10\\Demo01.txt"));
        //打印在指定路径的文件中
        System.out.println("举头望明月");//在文件中显示
        System.out.println("低头思故乡");//在文件中显示
    }
}

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值