[十四]JavaIO之PrintStream
|
PrintStream 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式
装饰器模式中具体的装饰类
它提供的功能就是便捷的打印各种数据形式
FilterInputStream为装饰器模式中的抽象角色 |
| 简言之,PrintStream可以快捷的打印输出各种类型的数据 |
| autoFlush是否自动刷新的标志位 所谓自动刷新,就是每次调用方法后,看下标志位,如果设置了,那么调用一下out.flush() 比如下面这段代码
|
|
所以,为了自动刷新,可以创建一个 PrintStream 这几种场景下自动刷新(如果是true) |
| 先看下他的私有的构造方法 其他所有的方法都是调用这两个构造方法 |
|
| 两个私有构造方法, 关注的主要信息就是OutputStream和autoFlush和 charset三个字段 OutputStream 作为实际被装饰的实体类 charset 指定的字符编码,如果不指定,那么将会使用默认的 autoFlush 默认是false |
|
PrintStream(OutputStream)
PrintStream(OutputStream, boolean)
PrintStream(OutputStream, boolean, String)
直接传递OutputStream
|
|
PrintStream(String)
PrintStream(String, String)
PrintStream(File)
PrintStream(File, String)
通过File或者路径名 构造FileOutputStream 作为FileOutputStream
可以看得出来,文件相关的,autoFlush全部都是false
|
| PrintStream 永远不会抛出 IOException 通过代码可以看得出来 内部维护了一个trouble标志位 发生了IOException异常时,捕捉后转换为trouble=true 可以通过checkError()方法进行返回 |
|
|
write(int)
write(byte[], int, int)
说到这,write基本不用介绍了,代码上面一段也已经贴出来
增加了自动刷新的功能,并且还不会抛出异常
|
| println() | 通过写入行分隔符字符串终止当前行。行分隔符字符串由系统属性 line.separator 定义,不一定是单个换行符 ('\n') |
|
print(boolean)
|
String.valueOf(boolean)生成字符串转换为字节 以 write(int) 方法的方式写入这些字节 |
+println() = println(boolean) |
|
print(char)
|
字符转换为一个或多个字节
以 write(int) 方法的方式写入这些字节
|
+println() = println(char) |
|
print(int)
|
String.valueOf(int)生成字符串转换为字节
以 write(int) 方法的方式写入这些字节
|
+println() = println(int) |
|
print(long)
|
String.valueOf(long)生成字符串转换为字节
以 write(int) 方法的方式写入这些字节
|
+println() = println(long) |
|
print(float)
|
String.valueOf(float)生成字符串转换为字节
以 write(int) 方法的方式写入这些字节
|
+println() = println(float) |
|
print(double)
|
String.valueOf(double)生成字符串转换为字节
以 write(int) 方法的方式写入这些字节
|
+println() = println(double) |
|
print(char[])
|
字符转换为字节
以 write(int) 方法的方式写入这些字节
|
+println() = println(char[]) |
|
print(String)
|
如果参数为 null,则打印字符串 "null"
否则转换为字节
以 write(int) 方法的方式写入这些字节
|
+println() = println(String) |
| print(Object) |
String.valueOf(Object)生成字符串转换为字节
以 write(int) 方法的方式写入这些字节
|
不存在print(Object) +println()的情况 println(Object)==先调用 String.valueOf(x) 获取字符串值,然后再 print(String)+ println() |
| print将会把数据转换为他们的字符串形式,然后转换为字节,然后在将字节写入 |
| print 与println结合 可以变成println的形式 从代码也可以很直白的看出来,调用之后,然后newLine() 不过需要注意的是print(Object) 他是特例
|
|
printf(String, Object...)
printf(Locale, String, Object...)
format(String, Object...)
format(Locale, String, Object...)
|
|
| 产生格式化输出的每个方法都需要格式字符串 和参数列表 格式字符串是一个 String,它可以包含固定文本以及一个或多个嵌入的格式说明符 这个是个类似C语言printf的方法 使用的时候不熟悉直接查表对照即可 printf和format一回事 |
|
append(char)
|
将指定字符添加到此输出流。
调用此方法的 out.append(c) 形式,行为与以下调用完全相同:out.print(c)
最后加一个跟写一个显然没什么不同
|
|
append(CharSequence)
|
将指定字符序列添加到此输出流 |
| append(CharSequence, int, int) | 将指定字符序列的子序列添加到此输出流 |
[十四]JavaIO之PrintStream的更多相关文章
- [二十四]JavaIO之PrintWriter
功能简介 PrintWriter 向文本输出流打印对象的格式化表示形式 他与PrintStream的逻辑上功能目的是相同的--他们都想做同一件事情--更便捷的格式化打印输出 Print ...
- How Tomcat Works(十四)
我们已经知道,在tomcat中有四种类型的servlet容器,分别为Engine.Host.Context 和Wrapper,本文接下来对tomcat中Wrapper接口的标准实现进行说明. 对于每个 ...
- 我的MYSQL学习心得(十四) 备份和恢复
我的MYSQL学习心得(十四) 备份和恢复 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) ...
- 雅虎(yahoo)前端优化十四条军规
第一条.尽可能的减少 HTTP 的请求数 (Make Fewer HTTP Requests ) http请求是要开销的,想办法减少请求数自然可以提高网页速度.常用的方法,合并css,js(将一个页面 ...
- Bootstrap<基础二十四> 缩略图
Bootstrap 缩略图.大多数站点都需要在网格中布局图像.视频.文本等.Bootstrap 通过缩略图为此提供了一种简便的方式.使用 Bootstrap 创建缩略图的步骤如下: 在图像周围添加带有 ...
- Bootstrap<基础十四> 按钮下拉菜单
使用 Bootstrap class 向按钮添加下拉菜单.如需向按钮添加下拉菜单,只需要简单地在在一个 .btn-group 中放置按钮和下拉菜单即可.也可以使用 <span class=&qu ...
- AngularJs的UI组件ui-Bootstrap分享(十四)——Carousel
Carousel指令是用于图片轮播的控件,引入ngTouch模块后可以在移动端使用滑动的方式使用轮播控件. <!DOCTYPE html> <html ng-app="ui ...
- C#编程总结(十四)dynamic
http://www.cnblogs.com/yank/p/4177619.html C#编程总结(十四)dynamic 介绍 Visual C# 2010 引入了一个新类型 dynamic. 该类型 ...
- 解剖SQLSERVER 第十四篇 Vardecimals 存储格式揭秘(译)
解剖SQLSERVER 第十四篇 Vardecimals 存储格式揭秘(译) http://improve.dk/how-are-vardecimals-stored/ 在这篇文章,我将深入研究 ...
随机推荐
- FCC学习笔记(一)
除了像素,你还可以使用百分比来指定border-radius边框半径的值. 给你的猫咪图片一个50%的border-radius. a元素,也叫anchor(锚点)元素,既可以用来链接到外部地址实现页 ...
- esxi 精简置备只增不减问题解决方法(转)
esxi 精简置备只增不减问题解决方法 众所周知Thin Provisioning模式下的虚拟机磁盘的空间会随需增长,可以很大程度上帮助我们节约空间,可是,凡增长过后的空间,即使清除了导致增长的文件后 ...
- window下如何使用文本编辑器(如记事本)创建、编译和执行Java程序
window下如何使用文本编辑器(如记事本)创建Java源代码文件,并编译执行 第一步:在一个英文目录下创建一个 .text 文件 第二步:编写代码 第三步:保存文件 方法一:选择 文件>另存为 ...
- 201771010126 王燕《面向对象设计 java》第十五周实验总结
第一部分 理论部分 ◼ JAR文件◼ 应用程序首选项存储◼ Java Web Start JAR文件: 1.Java程序的打包:程序编译完成后,程序员将.class文件压缩打包为.jar文件后,GU ...
- Java EE 导图
- Java GC相关知识
Java堆的分类 分为两类:YoungGen和OldGen.其中,YoungGen分为三部分:eden,from survivor和to survivor,比例默认是:8:1:1 PermGen不属于 ...
- 小甲鱼Python3笔记
000-愉快的开始 入门容易,学习难,代码量少. 跨平台: Windows, Mac OS, Linux, UNIX. 应用领域: 操作系统 WEB 3D动画 企业应用 云计算等等. 001-我和Py ...
- 记一次JVM故障排除
今天,自己开发的事件驱动的java大规模爬虫程序上线了几个新任务后突然异常. 异常: 程序业务异常,经查看CPU利用率满,内存满,一直报OOM,目测有内存泄露.如下图所示,四核16G的内粗,CPU高达 ...
- SharePoint 更改管理帐户密码步骤
// https://wenku.baidu.com/view/0fffab761ed9ad51f01df2df.html \
- Samba部署共享服务
在本地PC文件共享 Samba服务程序是一款基于SMB协议并由服务端和客户端组成的开源文件共享资源软件,实现了Windows和Linux系统间的文件共享 1.安装Samba服务程序 yum in ...