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();
}
}
}

最新文章

  1. UWP开发之Mvvmlight实践三:简单MVVM实例开发(图文详解付代码)
  2. React组件库
  3. 【原】Mac下统计任意文件夹中代码行数的工具——cloc
  4. linux下用户账户切换
  5. CentOS 升级内核
  6. Qt 2D绘图 渐变填充(三种渐变方式)
  7. HDU5090——Game with Pearls(匈牙利算法|贪心)(2014上海邀请赛重现)
  8. nodejs使用express4框架默认app.js配置说明
  9. 原子/Atomic操作
  10. iOS 开发之协议-代理传值
  11. EasyUI 二次加载toolbar异常问题解决
  12. 清理out的浏览器收藏夹发现的
  13. C#冒泡排序算法(简单好理解)
  14. BodeAbp服务端介绍
  15. linux 命令格式
  16. extern "C" 回顾
  17. iOS 11开发教程(十八)iOS11应用视图之使用代码添加按钮
  18. Swagger 路径过滤 -PreSerializeFilters
  19. ubuntu php 安装
  20. Unity项目中显示项目的FPS

热门文章

  1. python(索引/切片)
  2. FTP服务器项目的一些整理
  3. docker部署gitlab
  4. 数位dp H - F(x) HDU - 4734
  5. 自动化运维工具Ansible之Roles测验详解
  6. Linux下3种常用的网络测速工具
  7. Python爬虫丨大众点评数据爬虫教程(2)
  8. Linux dts 设备树详解(一) 基础知识
  9. C#操作时区转换时遇到的一些问题和解决方法分享
  10. 排序算法:图解快速排序算法--不超过18行代码Python和JavaScript实现快速排序算法