JAVA——打印流

目录

一、printStream

二、printWriter

三、打印流的应用——输出重定向

输出语句重定向的意义


 

一、printStream

1.  作用: 打印流可以实现更方便、更高效的打印数据出去

 跟着黑马实现一下:printStream 的底层实现效率更高,println输什么就打印什么,效率高;write 可以写字节/字节数组出去

指定编码是 Charset.forName("指定字符集编码")

public static void main(String[] args) {
        try (
                PrintStream ps = new PrintStream("E:\\developcode\\javacode\\javabase\\src\\com\\IO\\printliu\\test1.txt");
        ){
            ps.println('a');
            ps.println(97);
            ps.println("我出生在中国yyds");
            ps.println(true);
            ps.println(100.1);

            byte[] buffer = {'a','b','c'};
            ps.write(buffer);
            ps.write('y');
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

二、printWriter

看构造器,比printStream() 多了一个Writer,其他的差不多

 public static void main(String[] args) {
        try (
                //PrintWriter ps = new PrintWriter("文件路径");
                //如果要追加内容,printStream 是高级流,不可以后面直接加true,那么要变成低级流
                PrintWriter ps = new PrintWriter(new FileOutputStream("文件路径",true));
        ){
            ps.println('a');
            ps.println(97);
            ps.println("我出生在中国yyds");
            ps.println(true);
            ps.println(100.1);

             ps.write('你');
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

那么,看完了printStream和printWriter, 他们有什么区别勒?

1. 打印数据功能上一模一样,都是使用方便,性能高效

2. printStream 继承自字节输出流OutputStream,所以支持写出字节

3. printWriter 继承自字符输出流Writer,所以支持写出字符

三、打印流的应用——输出重定向

输出重定向指的是将原本应该输出到标准输出设备(如控制台或屏幕)的信息,改为输出到指定的文件或其他输出流中。这种机制在日志记录错误信息捕获数据持久化等场景中非常有用。

输出语句重定向的意义
  1. 日志记录:在应用程序运行时,将关键信息(如警告、错误日志)重定向到文件中,便于事后分析和调试。
  2. 错误信息捕获:当程序出现异常时,将错误信息重定向到特定文件,可以避免在控制台中丢失重要信息,并方便集中处理。
  3. 数据持久化:对于需要长期保存的数据,通过输出重定向可以方便地将其保存到文件中,实现数据的持久化存储。
public static void main(String[] args) {
        System.out.println("君生我未生");
        System.out.println("我生君已老");
        try (
                PrintStream ps = new PrintStream("文件地址");
        ){
            //把系统默认的打印流对象改成自己设置的打印流
            System.setOut(ps);
            System.out.println("君生我未生");
            System.out.println("我生君已老");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

这个就实现了打印到目标文件里面

System.setOut( ); 方法确实 要求参数 是一个 PrintStream 类型的对象。这是因为 System.out 本身就是一个 PrintStream 类型的静态字段,用于表示标准输出流(通常是控制台)。通过调用 System.setOut(PrintStream out) 方法,你可以将这个标准输出流重定向到任何 PrintStream 对象,这样原本应该输出到控制台的信息就会被发送到新的输出流中。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值