通过FilterOutputStream向OutputStream里写入数据
与DataInputStream对应的是DataOutputStream,后者对各个根基数据范例以及String工具举办名目化,并将其置入一个数据“流”中,以便任何呆板上的DataInputStream都能正常地读取它们。所有要领都以“wirte”开头,譬喻writeByte(),writeFloat()等等。
若想举办一些真正的名目化输出,好比输出到节制台,请利用PrintStream。操作它可以打印出所有根基数据范例以及String工具,并可回收一种易于查察的名目。这与DataOutputStream正好相反,后者的方针是将那些数据置入一个数据流中,以便DataInputStream可以或许利便地从头结构它们。System.out静态工具是一个PrintStream。
PrintStream内两个重要的要领是print()和println()。它们已举办了包围处理惩罚,可打印出所有数据范例。print()和println()之间的差别是后者在操纵完毕后会自动添加一个新行。
BufferedOutputStream属于一种“修改器”,用于指示数据流利用缓冲技能,使本身不必每次都向流内物理性地写入数据。凡是都应将它应用于文件处理惩罚和节制器IO。
表10.4 FilterOutputStream的范例
Class |
Function |
Constructor Arguments |
---|---|---|
How to use it |
||
Data-OutputStream |
Used in concert with DataInputStream so you can write primitives (int, char, long, etc.) to a stream in a portable fashion. |
OutputStream |
Contains full interface to allow you to write primitive types. |
||
PrintStream |
For producing formatted output. While DataOutputStream handles the storage of data, PrintStream handles display. |
OutputStream, with optional boolean indicating that the buffer is flushed with every newline. |
Should be the “final” wrapping for your OutputStream object. You’ll probably use this a lot. |
||
Buffered-OutputStream |
Use this to prevent a physical write every time you send a piece of data. You’re saying “Use a buffer.” You can call flush() to flush the buffer. |
OutputStream, with optional buffer size. |
This doesn’t provide an interface per se, just a requirement that a buffer is used. Attach an interface object. |
类 成果 构建器参数/如何利用
DataOutputStream 与DataInputStream共同利用,以便回收利便的形式将根基数据范例(int,char,long等)写入一个数据流 OutputStream/包括了完整接口,以便我们写入根基数据范例
PrintStream 用于发生名目化输出。DataOutputStream节制的是数据的“存储”,而PrintStream节制的是“显示” OutputStream,可选一个布尔参数,指示缓冲区是否与每个新行一同刷新/对付本身的OutputStream工具,应该用“final”将其关闭在内。大概常常都要用到它
BufferedOutputStream 用它制止每次发出数据的时候都要举办物理性的写入,要求它“请先在缓冲区里找”。可挪用flush(),对缓冲区举办刷新 OutputStream,可选缓冲区巨细/自己并不能提供一个接口,只是发出利用缓冲区的要求。需要同一个接口工具毗连到一起.