【发布时间】:2014-09-14 16:35:12
【问题描述】:
让我在这篇文章的开头谨慎一点。我是一个完全的初学者,我真的很想学习和理解做这些事情的最佳方法。除了我的首要问题,在什么情况下我可以使用DataInput/OutputStream 和BufferedInput/ouputStream?谢谢
【问题讨论】:
让我在这篇文章的开头谨慎一点。我是一个完全的初学者,我真的很想学习和理解做这些事情的最佳方法。除了我的首要问题,在什么情况下我可以使用DataInput/OutputStream 和BufferedInput/ouputStream?谢谢
【问题讨论】:
DataInputStream 处理二进制数据,而 BufferedReader 处理字符数据。
所有的原始数据类型都可以通过DataInputStream类中的相应方法来处理,而BufferedReader类只能读取字符串数据,需要将它们解析成各自的原始数据。
DataInputStream 是过滤流的一部分,而 BufferedReader 不是。
DataInputStream 是二进制流,消耗的内存空间较少,而 BufferedReader 是字符流,消耗的内存空间更多。
要处理的数据在DataInputStream中是有限的,而在BufferedReader中要处理的字符数范围很广。
【讨论】:
DataInput/OutputStream 用于将原始数据(int、boolean 等)等数据读/写到文件中。
BufferedInput/ouputStream 是提高性能的包装器。
事实上,你可以像这样使用它们:
DataOutputStream dos = new DataOutputStream(new BufferedOutputStream(file));
这背后的整个设计就是装饰者模式。您可以使用多个其他装饰器,例如 ObjectOutputStream 作为包装器。
【讨论】: