• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Java > Java 中的Printstream介绍_动力节点Java学院整理

Java 中的Printstream介绍_动力节点Java学院整理

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了java printstream,java.io.printstream,java中printstream,java printwriter,java print等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

PrintStream 介绍

PrintStream 是打印输出流,它继承于FilterOutputStream。

PrintStream 是用来装饰其它输出流。它能为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式。

与其他输出流不同,PrintStream 永远不会抛出 IOException;它产生的IOException会被自身的函数所捕获并设置错误标记, 用户可以通过 checkError() 返回错误标记,从而查看PrintStream内部是否产生了IOException。
另外,PrintStream 提供了自动flush 和 字符集设置功能。所谓自动flush,就是往PrintStream写入的数据会立刻调用flush()函数。

PrintStream 函数列表 

/* 
 * 构造函数
 */
// 将“输出流out”作为PrintStream的输出流,不会自动flush,并且采用默认字符集
// 所谓“自动flush”,就是每次执行print(), println(), write()函数,都会调用flush()函数;
// 而“不自动flush”,则需要我们手动调用flush()接口。
PrintStream(OutputStream out)
// 将“输出流out”作为PrintStream的输出流,自动flush,并且采用默认字符集。
PrintStream(OutputStream out, boolean autoFlush)
// 将“输出流out”作为PrintStream的输出流,自动flush,采用charsetName字符集。
PrintStream(OutputStream out, boolean autoFlush, String charsetName)
// 创建file对应的FileOutputStream,然后将该FileOutputStream作为PrintStream的输出流,不自动flush,采用默认字符集。
PrintStream(File file)
// 创建file对应的FileOutputStream,然后将该FileOutputStream作为PrintStream的输出流,不自动flush,采用charsetName字符集。
PrintStream(File file, String charsetName)
// 创建fileName对应的FileOutputStream,然后将该FileOutputStream作为PrintStream的输出流,不自动flush,采用默认字符集。
PrintStream(String fileName)
// 创建fileName对应的FileOutputStream,然后将该FileOutputStream作为PrintStream的输出流,不自动flush,采用charsetName字符集。
PrintStream(String fileName, String charsetName)
// 将“字符c”追加到“PrintStream输出流中”
PrintStream  append(char c)
// 将“字符序列从start(包括)到end(不包括)的全部字符”追加到“PrintStream输出流中”
PrintStream  append(CharSequence charSequence, int start, int end)
// 将“字符序列的全部字符”追加到“PrintStream输出流中”
PrintStream  append(CharSequence charSequence)
// flush“PrintStream输出流缓冲中的数据”,并检查错误
boolean  checkError()
// 关闭“PrintStream输出流”
synchronized void  close()
// flush“PrintStream输出流缓冲中的数据”。
// 例如,PrintStream装饰的是FileOutputStream,则调用flush时会将数据写入到文件中
synchronized void  flush()
// 根据“Locale值(区域属性)”来格式化数据
PrintStream  format(Locale l, String format, Object... args)
// 根据“默认的Locale值(区域属性)”来格式化数据
PrintStream  format(String format, Object... args)
// 将“float数据f对应的字符串”写入到“PrintStream输出流”中,print实际调用的是write函数
void  print(float f)
// 将“double数据d对应的字符串”写入到“PrintStream输出流”中,print实际调用的是write函数
void  print(double d)
// 将“字符串数据str”写入到“PrintStream输出流”中,print实际调用的是write函数
synchronized void  print(String str)
// 将“对象o对应的字符串”写入到“PrintStream输出流”中,print实际调用的是write函数
void  print(Object o)
// 将“字符c对应的字符串”写入到“PrintStream输出流”中,print实际调用的是write函数
void  print(char c)
// 将“字符数组chars对应的字符串”写入到“PrintStream输出流”中,print实际调用的是write函数
void  print(char[] chars)
// 将“long型数据l对应的字符串”写入到“PrintStream输出流”中,print实际调用的是write函数
void  print(long l)
// 将“int数据i对应的字符串”写入到“PrintStream输出流”中,print实际调用的是write函数
void  print(int i)
// 将“boolean数据b对应的字符串”写入到“PrintStream输出流”中,print实际调用的是write函数
void  print(boolean b)
// 将“数据args”根据“Locale值(区域属性)”按照format格式化,并写入到“PrintStream输出流”中
PrintStream  printf(Locale l, String format, Object... args)
// 将“数据args”根据“默认Locale值(区域属性)”按照format格式化,并写入到“PrintStream输出流”中
PrintStream  printf(String format, Object... args)
// 将“换行符”写入到“PrintStream输出流”中,println实际调用的是write函数
void  println()
// 将“float数据对应的字符串+换行符”写入到“PrintStream输出流”中,println实际调用的是write函数
void  println(float f)
// 将“int数据对应的字符串+换行符”写入到“PrintStream输出流”中,println实际调用的是write函数
void  println(int i)
// 将“long数据对应的字符串+换行符”写入到“PrintStream输出流”中,println实际调用的是write函数
void  println(long l)
// 将“对象o对应的字符串+换行符”写入到“PrintStream输出流”中,println实际调用的是write函数
void  println(Object o)
// 将“字符数组chars对应的字符串+换行符”写入到“PrintStream输出流”中,println实际调用的是write函数
void  println(char[] chars)
// 将“字符串str+换行符”写入到“PrintStream输出流”中,println实际调用的是write函数
synchronized void  println(String str)
// 将“字符c对应的字符串+换行符”写入到“PrintStream输出流”中,println实际调用的是write函数
void  println(char c)
// 将“double数据对应的字符串+换行符”写入到“PrintStream输出流”中,println实际调用的是write函数
void  println(double d)
// 将“boolean数据对应的字符串+换行符”写入到“PrintStream输出流”中,println实际调用的是write函数
void  println(boolean b)
// 将数据oneByte写入到“PrintStream输出流”中。oneByte虽然是int类型,但实际只会写入一个字节
synchronized void  write(int oneByte)
// 将“buffer中从offset开始的length个字节”写入到“PrintStream输出流”中。
void  write(byte[] buffer, int offset, int length)
</div>

注意:print()和println()都是将其中参数转换成字符串之后,再写入到输入流。

例如,

print(0x61); 
</div>

等价于

write(String.valueOf(0x61));
</div>

上面语句是将字符串"97"写入到输出流。0x61对应十进制数是97。

write(0x61)
</div>

上面语句是将字符'a'写入到输出流。因为0x61对应的ASCII码的字母'a'。

查看下面的代码,我们能对这些函数有更清晰的认识! 

PrintStream 源码分析(基于jdk1.7.40) 

 package java.io;
 import java.util.Formatter;
 import java.util.Locale;
 import java.nio.charset.Charset;
 import java.nio.charset.IllegalCharsetNameException;
 import java.nio.charset.UnsupportedCharsetException;
 public class PrintStream extends FilterOutputStream
  implements Appendable, Closeable
 {
  // 自动flush
  // 所谓“自动flush”,就是每次执行print(), println(), write()函数,都会调用flush()函数;
  // 而“不自动flush”,则需要我们手动调用flush()接口。
  private final boolean autoFlush;
  // PrintStream是否右产生异常。当PrintStream有异常产生时,会被本身捕获,并设置trouble为true
  private boolean trouble = false;
  // 用于格式化的对象
  private Formatter formatter;
  // BufferedWriter对象,用于实现“PrintStream支持字符集”。
  // 因为PrintStream是OutputStream的子类,所以它本身不支持字符串;
  // 但是BufferedWriter支持字符集,因此可以通过OutputStreamWriter创建PrintStream对应的BufferedWriter对象,从而支持字符集。
  private BufferedWriter textOut;
  private OutputStreamWriter charOut;
  private static <T> T requireNonNull(T obj, String message) {
   if (obj == null)
    throw new NullPointerException(message);
   return obj;
  }
  // 返回csn对应的字符集对象
  private static Charset toCharset(String csn)
   throws UnsupportedEncodingException
  {
   requireNonNull(csn, "charsetName");
   try {
    return Charset.forName(csn);
   } catch (IllegalCharsetNameException|UnsupportedCharsetException unused) {
    // UnsupportedEncodingException should be thrown
    throw new UnsupportedEncodingException(csn);
   }
  }
  // 将“输出流out



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Java 中的Printstream介绍_动力节点Java学院整理
  • Java 中的Printstream介绍_动力节点Java学院整理

相关文章

  • 2017-05-28Spring Boot Redis 集成配置详解
  • 2017-05-28java使用Filter实现自动登录的方法
  • 2017-05-28java 实现汉诺塔详解及实现代码
  • 2017-05-28Java通过PropertyDescriptor反射调用set和get方法
  • 2017-05-28java 数据的加密与解密普遍实例代码
  • 2017-05-28Java中抽象类和接口的区别_动力节点Java学院整理
  • 2017-05-28JAVAEE中用Session简单实现购物车功能示例代码
  • 2017-05-28SWT(JFace)体验之ApplicationWindow
  • 2017-05-28Java微信公众平台开发(9) 关键字回复以及客服接口实现
  • 2017-05-28Java NIO:浅析IO模型_动力节点Java学院整理

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • SpringBoot远程访问redis服务器问题剖析
    • JVM 方法调用之动态分派(详解)
    • Java Web之限制用户多处登录实例代码
    • java Spring AOP详解及简单实例
    • Java 爬虫工具Jsoup详解
    • Spring Boot的Controller控制层和页面
    • Spring boot学习教程之快速入门篇
    • 浅析Java中clone()方法浅克隆与深度克隆
    • Spring+SpringMVC+MyBatis深入学习及搭建(三)之MyBatis全局配置文件解析
    • Java中Builder模式的实现详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有