- 写在前面的话
- 引言
- 第 1 章 对象入门
- 第 2 章 一切都是对象
- 第 3 章 控制程序流程
- 第 4 章 初始化和清除
- 第 5 章 隐藏实施过程
- 第 6 章 类再生
- 第 7 章 多形性
- 第 8 章 对象的容纳
- 第 9 章 违例差错控制
- 第 10 章 Java IO 系统
- 第 11 章 运行期类型鉴定
- 第 12 章 传递和返回对象
- 第 十三 章 创建窗口和程序片
- 第 14 章 多线程
- 第 15 章 网络编程
- 第 16 章 设计范式
- 第 17 章 项目
- 附录 A 使用非 JAVA 代码
- 附录 B 对比 C++和 Java
- 附录 C Java 编程规则
- 附录 D 性能
- 附录 E 关于垃圾收集的一些话
- 附录 F 推荐读物
10.2.2 通过 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,可选缓冲区大小/本身并不能提供一个接口,只是发出使用缓冲区的要求。需要同一个接口对象连接到一起
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论