Java IO(十九)PrintStream 和 PrintWriter

一、介绍

(一)、PrintStream

PrintStream 是打印输出流,它继承于FilterOutputStream。PrintStream 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式。它还提供其他两项功能。与其他输出流不同,PrintStream 永远不会抛出 IOException;而是,异常情况仅设置可通过 checkError 方法测试的内部标志。另外,为了自动刷新,可以创建一个 PrintStream;这意味着可在写入byte 数组之后自动调用 flush 方法,可调用其中一个 println 方法,或写入一个换行符或字节 ('\n')。
PrintStream 打印的所有字符都使用平台的默认字符编码转换为字节。在需要写入字符而不是写入字节的情况下,应该使用 PrintWriter 类。

(二)、PrintWriter

PrintWriter 是字符类型的打印输出流,它继承于Writer。PrintStream 用于向文本输出流打印对象的格式化表示形式。它实现在 PrintStream 中的所有 print 方法。它不包含用于写入原始字节的方法,对于这些字节,程序应该使用未编码的字节流进行写入。

二、构造方法

(一)、PrintStream

(二)、PrintWriter

三、常用API

(一)、PrintStream

PrintStream   append(char c) //将指定的字符附加到此输出流。
PrintStream   append(CharSequence csq) // 将指定的字符序列附加到此输出流。
PrintStream   append(CharSequence csq, int start, int end) // 将指定字符序列的子序列附加到此输出流。
boolean      checkError() // 刷新流并检查其错误状态。
void       close() // 关闭流。
void flush() // 刷新流。
PrintStream format(Locale l, String format, Object... args) // 使用指定的格式字符串和参数将格式化的字符串写入此输出流。
PrintStream format(String format, Object... args) // 使用指定的格式字符串和参数将格式化的字符串写入此输出流。
void       print(boolean b) // 打印布尔值。
void       print(char c) // 打印一个字符
void       print(char[] s) // 打印字符数组。
void       print(double d) // 打印双精度浮点数。
void       print(float f) // 打印浮点数。
void       print(int i) // 打印一个整数。
void       print(long l) // 打印一个长整数。
void       print(Object obj) // 打印一个对象。
void       print(String s) // 打印字符串。
PrintStream printf(Locale l, String format, Object... args) // 使用指定的格式字符串和参数将格式化的字符串写入此输出流的便利方法。
PrintStream printf(String format, Object... args) // 使用指定的格式字符串和参数将格式化的字符串写入此输出流的便利方法。
void       println() // 通过写入行分隔符字符串来终止当前行。
void       println(boolean x) // 打印一个布尔值,然后终止该行。
void       println(char x) // 打印一个字符,然后终止该行。
void       println(char[] x) // 打印一个字符数组,然后终止该行。
void       println(double x) // 打印一次,然后终止行。
void       println(float x) // 打印一个浮点数,然后终止该行。
void       println(int x) // 打印一个整数,然后终止行。
void       println(long x) // 打印很长时间,然后终止行。
void       println(Object x) // 打印一个对象,然后终止该行。
void       println(String x) // 打印一个字符串,然后终止行。
void       write(byte[] buf, int off, int len) // 从指定的字节数组写入 len个字节,从偏移 off开始到此流。
void       write(int b) // 将指定的字节写入此流。

(二)、PrintWriter

PrintWriter  append(char c) // 将指定的字符附加到此输出流。
PrintWriter append(CharSequence csq) // 将指定的字符序列附加到此输出流。
PrintWriter append(CharSequence csq, int start, int end) // 将指定字符序列的子序列附加到此输出流。
boolean checkError() // 如果流未关闭,请刷新流并检查其错误状态。
void      close() // 关闭流并释放与之相关联的任何系统资源。
void      flush() // 刷新流。
PrintWriter format(Locale l, String format, Object... args) // 使用指定的格式字符串和参数将格式化的字符串写入此写入程序。
PrintWriter format(String format, Object... args) // 使用指定的格式字符串和参数将格式化的字符串写入此写入程序。
void      print(boolean b) // 打印布尔值。
void      print(char c) // 打印一个字符
void      print(char[] s) // 打印字符数组。
void      print(double d) // 打印双精度浮点数。
void      print(float f) // 打印浮点数。
void      print(int i) // 打印一个整数。
void      print(long l) // 打印一个长整数。
void      print(Object obj) // 打印一个对象。
void      print(String s) // 打印字符串。
PrintWriter printf(Locale l, String format, Object... args) // 使用指定的格式字符串和参数将格式化的字符串写入该writer的方便方法。
PrintWriter printf(String format, Object... args) // 使用指定的格式// 符串和参数将格式化的字符串写入该writer的方便方法。
void      println() // 通过写入行分隔符字符串来终止当前行。
void      println(boolean x) // 打印一个布尔值,然后终止该行。
void      println(char x) // 打印一个字符,然后终止该行。
void      println(char[] x) // 打印字符数组,然后终止行。
void      println(double x) // 打印双精度浮点数,然后终止行。
void      println(float x) // 打印一个浮点数,然后终止该行。
void      println(int x) // 打印一个整数,然后终止该行。
void      println(long x) // 打印一个长整型,然后终止行。
void      println(Object x) // 打印一个对象,然后终止该行。
void      println(String x) // 打印一个字符串,然后终止行。
void      write(char[] buf) // 写入一个字符数组。
void      write(char[] buf, int off, int len) // 写一个字符数组的一部分。
void      write(int c) // 写一个字符
void      write(String s) // 写一个字符串
void      write(String s, int off, int len) // 写一个字符串的一部分。

四、实例

public class PrintDemo {

    public static void main(String[] args) {
testPrintStream();
testPrintWriter();
}
/**
* PrintStream 测试
*/
public static void testPrintStream() {
try {
PrintStream ps = new PrintStream("stream.txt");
ps.write("abcdefg".getBytes());
ps.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* PrintWriter 测试
*/
public static void testPrintWriter() {
try {
PrintWriter pw = new PrintWriter("writer.txt");
pw.write(new char[] {'A','B','C','D','E'});
pw.close();
} catch (Exception e) { e.printStackTrace();
}
}
}

Java IO(十九)PrintStream 和 PrintWriter的更多相关文章

  1. “全栈2019”Java第九十九章:局部内部类与继承详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  2. “全栈2019”Java第二十九章:数组详解(中篇)

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  3. “全栈2019”Java第十九章:关系运算符、条件运算符和三元运算符

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  4. Java IO(九)FilterInputStream 和 FilterOutputStream

    Java IO(九)FilterInputStream 和 FilterOutputStream 一.介绍 FilterInputStream 和 FilterOutputStream 是过滤字节输入 ...

  5. 系统学习 Java IO (十六)----这么多类,应该用哪个?

    目录:系统学习 Java IO---- 目录,概览 Java IO目的和功能 Java IO 包含 InputStream,OutputStream,Reader 和 Writer 类的许多子类. 原 ...

  6. 缓冲字符流 java.io.BufferedWriter ,java.io.BufferedReader,缓冲字符输出流:PrintWriter

    package seday07; import java.io.IOException;import java.io.PrintWriter; /*** @author xingsir * 缓冲字符流 ...

  7. JAVA提高十九:WeakHashMap&EnumMap&LinkedHashMap&LinkedHashSet深入分析

    因为最近工作太忙了,连续的晚上支撑和上班,因此没有精力来写下这篇博客,今天上午正好有一点空,因此来复习一下不太常用的集合体系大家族中的几个类:WeakHashMap&EnumMap&L ...

  8. 系统学习 Java IO (十二)----数据流和对象流

    目录:系统学习 Java IO---- 目录,概览 DataInputStream/DataOutputStream 允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型. 要想使用 ...

  9. 系统学习 Java IO (十五)----字符读写 Reader/Writer 其他子类

    目录:系统学习 Java IO---- 目录,概览 跟踪行号的缓冲字符输入流 LineNumberReader LineNumberReader 类是一个 BufferedReader ,用于跟踪读取 ...

  10. 系统学习 Java IO (十四)----字符读写缓存和回退 BufferedReader/BufferedWriter & PushbackReader

    目录:系统学习 Java IO---- 目录,概览 BufferedReader BufferedReader 类构造器接收一个 Reader 对象,为 Reader 实例提供缓冲. 缓冲可以加快 I ...

随机推荐

  1. vue添加,删除内容

    vue 提交添加内容,点击删除内容 1 html <input v-model="inputValue" /> <button @click="hand ...

  2. 配置中心Apollo搭建全过程

    总体架构 用户在Portal操作配置发布 Portal调用Admin Service的接口操作发布 Admin Service发布配置后,发送ReleaseMessage给各个Config Servi ...

  3. python-CSV格式清洗与转换、CSV格式列变换、CSV格式数据清洗【数据读入的三种方法】【strip、replace、split、join函数的使用】

    1)CSV格式清洗与转换 描述 附件是一个CSV格式文件,提取数据进行如下格式转换:‪‬‪‬‬‪‬‮‬‪‬‭‬ (1)按行进行倒序排列:‪‬‪‬‪‬‪‬‪‬‮‬‬‪‬‮‬‪‬‭‬ (2)每行数据倒序排 ...

  4. 龟兔赛跑算法 floyed判环算法

    今天写线段树写到要用到这个算法的题目,简单的学习一下. https://blog.csdn.net/javaisnotgood/article/details/89243876 https://blo ...

  5. LDheatmap | SNP连锁不平衡图(LD)可视化,自己数据实现版!

    本文首发于“生信补给站”,https://mp.weixin.qq.com/s/Gl6BChxSYbSHMo9oMpufPg 连锁不平衡图,用来可视化不同SNP之间的连锁程度,前同事间俗称“倒三角”图 ...

  6. Coursera课程笔记----计算导论与C语言基础----Week 3

    存储程序式计算机 冯·诺伊曼式计算机 "关于EDVAC的报告草案" 组成:控制器(协调工作).运算器(算数&逻辑运算).存储器(存储操作信息和中间结果).输入设备.输出设备 ...

  7. 【Hadoop离线基础总结】MapReduce增强(上)

    MapReduce增强 MapReduce的分区与reduceTask的数量 概述 MapReduce当中的分区:物以类聚,人以群分.相同key的数据,去往同一个reduce. ReduceTask的 ...

  8. 假如用王者荣耀的方式学习webpack

    英雄介绍 崴博.派克诞生于遥远西方的勇士之地,拥有着高超的机械技艺,善于运用各种工具来实现一些看似不可能完成的事.游历王者大陆时机缘巧合遇到了年轻的墨子,与之成为好友.后协助大宗师墨子建造了大陆第一雄 ...

  9. 1018 Public Bike Management (30分) 思路分析 + 满分代码

    题目 There is a public bike service in Hangzhou City which provides great convenience to the tourists ...

  10. 【hdu1024】简单dp

    http://acm.hdu.edu.cn/showproblem.php?pid=1024 最大m字段和,题目就不多说了,经典dp 这题坑爹...首先不说明m的范围(n<=1000000),还 ...