IO流加强(四)打印流

第一个打印流:字节打印流 PrintStream

存下字节

@Test
    public void printStreamDemo() throws FileNotFoundException{
        PrintStream out = new PrintStream("a.txt");
        out.write(97);
        out.write(353);  
        // 353  的最后一个字节是 97 所以是只存最后一个字节 97 
        // 并且 是以二进制的 353 方式存储

    }

结果
这里写图片描述

@Test
    public void printStreamDemo2(){
        // 原来System.out  也是字节型打印流啊
        PrintStream out =System.out;
        System.out.println("我是字节打印流,然后.close() 会怎么样");
        out.close();
        System.out.println("看不到我");
    }

结果 关流之后输出不了
这里写图片描述

@Test
    public void printStreamDemo3() throws IOException{
        // 原来System.out  也是字节型打印流啊
        PrintStream out =new PrintStream("ab.txt");
        System.setOut(out);
        System.out.println("屏幕输出不了我了,我到ab.txt文件去了");
    }

屏幕没有了,在文件了
这里写图片描述

第二个:字符打印流(字符就要想想缓存的事)

/*
* ★字符流要记得刷缓存
*
* PrintWriter的功能和PrintStream基本相同,
* 主要区别是PrintWriter为字符流(带缓存,即有一些跟缓存有关的功能)
*/

@Test
    public void printWriterDemo() throws IOException{
        PrintWriter out = new PrintWriter("pwb.txt");
        out.write(97);   // a  面向机器,会转化为a
        out.print(97);  // 97  面向用户  写的是什么看到的就是什么
        // 然后 打开文件 没有 忘记刷缓存
        out.flush();
        out.close(); //记得关流

    }

有几个方法不用刷缓存,自动刷,但是构造方法要设为true
即使下面设置了true,还要只有println、printf 或 format方法才会自动刷新

@Test //演示自动刷缓存
    public void printWriterDemo2(){
        //注意,即使下面设置了true,还要只有println、printf 或 format方法才会自动刷新
        PrintWriter pw = new PrintWriter(System.out,true);
        //pw.print("湖南城院"); 
        //pw.flush(); //上面一句不会自动刷新,还是需要手动调用flush()

        pw.println("湖南城院");//可以自动刷新
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值