美文网首页
Java之打印流

Java之打印流

作者: 如果仲有听日 | 来源:发表于2018-09-05 14:59 被阅读0次

PrintStream    了解

PrintWriter      掌握


1. 打印输出流的特性

打印流的特点:

    不负责数据源,只负责数据目的

    为其他输出流,添加功能

    永远不会抛出IO异常,但是可能抛出别的异常

PrintStream与PrintWriter的区别:

    PrintStream、PrintWriter的方法名是完全一致的,一般用PrintWriter,灵活性更强

    手册中PrintWriter说明了:PrintWriter类实现了在PrintStream类中的所有print方法

    PrintStream和PrintWriter的区别在构造方法上,指定输出的目的端

        PrintSteam构造方法接收:

            File类型、字符串文件名、字节输出流OutputStream

        PrintWriter构造方法接收:

            File类型、字符串文件名、字节输出流OutputStream、字符输出流Writer

PrintStream构造方法 PrintWriter构造方法

2. PrintWriter实例

由于PrintWriter比PrintStream多了字符输出流Writer的构造方法,因此PrintWriter更灵活,PrintStream可以不用再学习


2.1. 打印流输出目的是File对象 PrintWriter(File file)

输出文件testPrint结果:

97

a

因为Wrinter都是字符数出流必须要做flush(), 否则println的字符是不会写入File对象的文件testPrint中的,或者最后做一次close()一次刷新数据到文件中

还需要注意的是,上面结果是先打印了97换行,再打印出一个字符a

说明println是一个原样输出方法,不同于write,write会经过Ascii码表翻译

2.2. 输出语句是char[] 数组

查看api手册,发现PrintWriter中的方法参数对数组的支持只有char[]数组,并不支持其他类型的数组,因此,如果是其他类型必须一个个数据写入,不能用该类型的数组

查看println源码:

查看testPrint文件结果:

[I@6d06d69c

abc

100

103

105

2.3. 打印流输出目的是String和流对象

2.3.1. PrintWriter(String fileName)

可以不做flush

2.3.2. PrintWriter(OutputStream out) 字节输出流

2.3.3. PrintWriter(Writer out) 字符输出流

这里演示用了FileWriter使用默认编码格式,也可以用OutputStreamWriter指定编码格式

2.4. 打印流开启自动刷新

PrintWriter(OutputStream out, boolean autoFlush)

PrintWriter(Writer out, boolean autoFlush)


自动刷新即:可以不做flush()。 需要满足2个条件:

    1. 输出的数据目的必须是流对象: OutputStream、Writer

    2. 必须调用println(),printf(),format()三个方法中的一个才可以(也就是说File类、String类都不行,调用了wirte()方法也不行)

这里将close()方法去掉来做演示,但是在正式项目中是一定要做close()的:

另外,如果一定要将File对象做自刷新,可以将File转换为流对象,再做自刷新

2.5. 打印流复制文本文件

由于是文本文件,所以用字符流来做,另外考虑效率,选择Buffered。所以用BufferedReader来读取文件数据

而拷贝写入的时候,使用自动刷新

另外,编程的时候很容易忘记close()两个文件描述符,再一次提醒!!!!

相关文章

  • Java之打印流

    PrintStream 了解 PrintWriter 掌握 1. 打印输出流的特性 打印流的特点: 不负...

  • 2019-03-26

    java——打印流: 打印流主要是用来输出信息的,主要分为字节打印流(PrintStream)和字符打印流(Pri...

  • [java]16、打印流

    1、概述 平时我们在控制台打印输出,是调用 print 方法和 println 方法完成的,这两个方法都来自于 j...

  • Java之IO流详解

    title: Java之IO流详解tags: Java IO流categories: Java IO流 大多数应用...

  • Java8之Stream流(六)收集

    Java8之Stream流(一)基础体验 Java8之Stream流(二)关键知识点 Java8之Stream...

  • Java IO中的其他流的使用

    本文主要介绍Java IO中的其他几种流: 标准输入、输出流 打印流 数据流 对象流 随机存取文件流 标准输入、输...

  • No.21 打印输出流

    简介: java.io 提供了两个打印流,PrintStream/PrintWriter他们都属于输出流。Prin...

  • IO流之 打印流

    打印流 核心代码无变化,所以不做多余记录 什么是打印流 使用方式【特有方法】

  • 打印流:

    打印流: 只能输出没有输入打印流分为字节打印流和字符打印流printwriter: 字符打印流特点 可以打印各种数...

  • Java--打印流详解

    Java--打印流详解 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方...

网友评论

      本文标题:Java之打印流

      本文链接:https://www.haomeiwen.com/subject/bkxawftx.html