OutputStream节点流

本文详细介绍了Java IO中的OutputStream家族,包括ByteArrayOutputStream、FileOutputStream、PipedOutputStream和ObjectOutputStream。ByteArrayOutputStream用于内存中的数据操作,FileOutputStream实现文件写入,PipedOutputStream创建通信管道,而ObjectOutputStream则用于序列化对象。此外,还提到了OutputStream的过滤流,如DataOutputStream、BufferedOutputStream和PrintStream,它们提供了基本类型支持、缓冲和便捷输出功能。

数据源与OutputStream的结合

字节数组:ByteArrayOutputStream(java.io)

文件:FileOutputStream(java.io)

管道:PipedOutputStream(java.io)

对象:ObjectOutputStream(java.io)

仍旧是数据源与OutputStream的组合

ByteArrayOutputStream

其中的数据被写入一个 byte 数组

缓冲区会随着数据的不断写入而自动增长, 可使用 toByteArray() 和 toString() 获取数据

关闭 ByteArrayOutputStream 无效

此类中的方法在关闭此流后仍可被调用,而不会产生任何 IOException

ByteArrayOutputStream()
ByteArrayOutputStream(int size)
无参会调用有参,设置默认值
FileOutputStream信息写入文件FileOutputStream(String name)
FileOutputStream(String name, boolean append)
FileOutputStream(File file)
FileOutputStream(File file, boolean append)
FileOutputStream(FileDescriptor fdObj)
与FileInputStream几乎一样,不同的是第二个参数用于设置是否是append追加
PipedOutputStream可以将管道输出流连接到管道输入流来创建通信管道
管道输出流是管道的发送端
通常,数据由某个线程写入 PipedOutputStream 对象
并由其他线程从连接的 PipedInputStream 读取
不建议对这两个对象尝试使用单个线程,因为这样可能会造成该线程死锁
PipedOutputStream(PipedInputStream snk)
PipedOutputStream()
ObjectOutputStreamObjectOutputStream 将 Java 对象的基本数据类型和图形写入 OutputStream
可以使用 ObjectInputStream 读取(重构)对象
通过在流中使用文件可以实现对象的持久存储
如果流是网络套接字流,则可以在另一台主机上或另一个进程中重构对象
ObjectOutputStream(OutputStream out)
ObjectOutputStream()

2.2.2.2  OutputStream过滤流

类似InputStream,OutputStream也需要有支撑基本数据类型的功能,以及缓冲的功能

另外,既然是输出,还希望能够输出各种类型的数据,这样子将会更加方便

也就是 

基本数据类型支持/缓冲/便捷输出

DataOutputStream (java.io)

BufferedOutputStream (java.io)

PrintStream (java.io)

同InputStream 一样

扩展的功能,类库设计者依然是使用装饰器模式

FilterOutputStream (java.io)  是我们的Decorator

完整的家谱

非IO包中的,但是却跟IO相关的一些功能点,跟OutputStream相关的类

SocketOutputStream (java.net)

CheckedOutputStream (java.util.zip)

DeflaterOutputStream (java.util.zip)

GZIPOutputStream (java.util.zip)

InflaterOutputStream (java.util.zip)

JarOutputStream (java.util.jar)

ZipOutputStream (java.util.zip)

扩展的家谱

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值