Java打印流——PrintStream
我们知道Java输出流有OutputStream,怎么又冒出了一个打印流呢?因为OutputStream只有三个write()输出方法,参数全都是字节。如果我们要把String或int或double类型的数据输出,都要先把它们转换成字节或字节数组,再进行write()输出,这样使用起来稍微有点麻烦,所以就有了PrintStream这个类来简化我们的操作。
PrintStream有各种类型数据的print()输出方法,还有println()换行输出。那么它和OutputStream有没有什么关系呢?
它们之间的继承关系如下:
java.lang.Objectjava.io.OutputStreamjava.io.FilterOutputStreamjava.io.PrintStream
原来PrintStream是OutputStream的子类,再来看PrintStream的构造方法(其中一个):
public PrintStream(OutputStream out)
子类接收父类的实例化对象,说明PrintStream类中有一个OutputStream的成员变量,这个构造方法用来给该成员变量赋值。如果我们想要把内容打印到文件,就可以传入FileOutputStream对象;如果我们想要把内容打印到内存,就可以传入ByteArrayOutputStream对象……读到这里,有没有觉得它很像一种设计模式——装饰器模式。OutputStream是抽象构件,定义了一系列方法,FileOutputStream是具体构件,实现了OutputStream定义的那些方法,FilterOutputStream就是抽象装饰类,它接收OutputStream子类作为参数,并且简单的重写了OutputStream的所有方法,PrintStream是具体装饰类,它继承FilterOutputStream的所有方法,并且又额外定义了自己的一些方法(如那些print()方法)。
装饰模式包含如下角色:
- Component: 抽象构件(Transform)
- ConcreteComponent: 具体构件(Car)
- Decorator: 抽象装饰类(Changer)
- ConcreteDecorator: 具体装饰类(Robot、Airplane)
示例:
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;public class Main {public static void main(String[] args) throws IOException {PrintStream p=new PrintStream(new FileOutputStream(new File("e:\\hello.txt")));String str="hello world";int i=5;double d=7.9;p.println(str);p.println(i);p.println(d);p.close();}
}
运行结果:
hello world
5
7.9
还有一个类是PrintWriter,与PrintStream相似,实现了PrintStream中的所有 print 方法。PrintStream打印的所有字符都使用平台的默认字符编码转换为字节。在需要写入字符而不是写入字节的情况下,应该使用 PrintWriter类。
Java打印流——PrintStream相关推荐
- JAVA打印流PrintStream 常用方式
JAVA打印流PrintStream 常用方式 打印流:PrintStream : 继承于OutputStream ,可以使用OutputStream的方法 ***主要用于改变标准输出流方向. (1) ...
- java io流printstream_java IO流:打印流 PrintStream
打印流 PrintStream PrintStream extends FilterOutputStream PrintStream 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式 特 ...
- Java打印流(PrintStream/PrintWriter)
概念 打印流是输出信息最方便的类,注意包含字节打印流PrintStream和字符打印流PrintWriter.打印流提供了非常方便的打印功能,可以打印任何类型的数据信息,例如:小数,整数,字符串.而且 ...
- IO流(五)__文件的递归、Properties、打印流PrintStream与PrintWriter、序列流SequenceInputStream...
一.文件的遍历 1.需求:对指定目录进行所有的内容的列出(包含子目录的内容)-文件的深度遍历 思想:递归的思想,在递归的时候要记住递归的层次. public class FileTest {publi ...
- 打印流PrintStream和配置流Propeties
打印流PrintStream和PrintWriter /*** 打印流PrintStream*/@Testpublic void Print() throws IOException {PrintSt ...
- (JAVA)从零开始之--打印流PrintStream记录日志文件
这里的记录日志是利用打印流来实现的. 文本信息中的内容为String类型.而像文件中写入数据,我们经常用到的还有文件输出流对象FileOutputStream. 1 File file = new F ...
- java基础----IO打印流PrintStream
package com.henu.io;import java.io.PrintStream;/** •public PrintStream(String fileName): 使用指定的文件名创建一 ...
- 【java笔记】打印流printStream
printStream打印流: 继承了OutPutStream 1.只负责输出,不负责读取. 2.不抛出IOException 3.特有的方法:print/printLn(任意类型的值) 构造方法: ...
- 打印流-PrintStream和PrintWriter
IO包中的其他功能流对象 功能流对象 特点:解决问题的特有方法. 打印流--必须是输出流(两个都是) PrintStream(字节流) PrintWriter(字符流) 特点:打印.不抛异常 打印的目 ...
最新文章
- 易语言组合框连接mysql_用mysql填充的多动态组合框
- “计算机艺术之父”、现代计算机技术先驱查理斯·苏黎去世,享年99岁
- python保存的是什么类型文件_python-----基本的数据类型和文件操作
- 构造函数及析构函数的调用
- 前端学习(2478):请求提交
- java: cannot execute binary file问题的解决
- 软件测试——第三次作业
- 上班两年干了些啥?该思考人生
- 从迁移学习到图像合成
- win10重装应用商店
- 视频教程-PO设计模式(精讲)-软件测试
- Javase day06_作业
- 数据有效性做下拉菜单
- 无线WiFi可以网络唤醒远程开机吗?WakeOnLan常见问题总结
- 程序员过失泄露代码违法吗_软件过失的23种模式
- 活着活着,就明白了(精辟)
- win10 telnet不是内部或外部命令(已解决)
- 【Wi-Fi 802.11协议】管理帧 之 Beacon帧详解
- 四边形围栅栏c语言长度,不同结构围油栏拦油特性数值的研究.pdf
- 32x32Booth乘法器