Java基础之IO打印流学习

简要概述

  • 概念

    之前打印信息需要使用OutputStream但是这样,所有数据输出会非常麻烦,String–>byte[],打印流中可以方便进行输出。平常在控制台打印输出,是调用print方法和println方法完成的,而这两个方法都来自于java.io.PrintStream类

  • 分类

    字节打印流:PrintStream(是OutputStream的子类)

    字符打印流:PrintWriter(是Writer的子类)

  • 特点

    1. 只操作目的地,不操作数据源

    2. 可以操作任意类型的数据

    3. 如果启用了自动刷新,在调用println()方法的时候,能够换行并刷新

    4. 可以直接操作文件

  • 其他

    哪些流可以直接操作文件呢?答案很简单,如果该流的构造方法能够同时接收File和String类型的参数,一般都是可以直接操作文件的

打印流

字节打印流PrintStream

  • 字节打印流复制文本文件

    
        /**
        * @Author charlesYan
        * @Description //字节输出打印流复制文本文件
        * @Date 10:16 2020/11/18
        * @Param []
        * @return void
        **/
        @Test
        public void testPrintStream(){
    
    
            try (BufferedReader br = new BufferedReader(new FileReader("E:\\Blog\\202011181025.txt"));
    
                PrintStream ps = new PrintStream("E:\\Blog\\202011181030.txt");) {
    
                // 读取内容
                String read = null;
    
                while ((read = br.readLine()) != null) {
    
                    ps.println(read);
                }
    
            } catch (Exception e) {
                e.printStackTrace();
            }
    
    
            System.out.println("打印流复制完成!");
        }
    
    
    
    
  • 格式化输出功能

    JAVA对PrintStream功能进行了扩充,增加了格式化输出功能。直接使用Print即可。但是输出的时候需要指定输出的数据类型。
    PrintStream格式化输出格式

    
    
        /**
        * @Author charlesYan
        * @Description //字节打印流格式化输出
        * @Date 11:13 2020/11/18
        * @Param []
        * @return void
        **/
        @Test
        public void testPrintStreamFormatPrint() throws Exception{
    
            PrintStream ps = null ;        // 声明打印流对象
            // 如果现在是使用FileOuputStream实例化,意味着所有的输出是向文件之中
            ps = new PrintStream(new FileOutputStream(new File("E:\\Blog\\202011181030.txt"))) ;
            String name = "李兴华" ;    // 定义字符串
            int age = 30 ;                // 定义整数
            float score = 990.356f ;    // 定义小数
            char sex = 'M' ;            // 定义字符
            // 可以使用 %s 代替
            ps.printf("姓名:%s;年龄:%d;成绩:%f;性别:%c",name,age,score,sex) ;
            ps.close() ;
        }
    
    
    
    
    

字符打印流PrintWriter

  • 字符打印流复制文本文件

    
        /**
        * @Author charlesYan
        * @Description //字符输出打印流复制文本
        * @Date 10:47 2020/11/18
        * @Param []
        * @return void
        **/
        @Test
        public void testPrintWriter() throws Exception{
    
            BufferedReader br = new BufferedReader(new FileReader("E:\\Blog\\202011181025.txt"));
            PrintWriter pw = new PrintWriter("E:\\Blog\\202011181030.txt");
    
            String read;
    
            while ((read = br.readLine()) != null) {
                pw.println(read);
            }
    
            br.close();
            pw.close();
    
        }
    
    
    
    
    

参考链接

  • JAVA的IO流:打印流

    https://www.cnblogs.com/alsf/p/6852852.html

  • 史上最骚最全最详细的IO流教程,没有之一!

    https://www.cnblogs.com/yichunguo/p/11775270.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值