【问题标题】:What is the difference between DataInput/OutputStream and BufferedInput/ouputStream?数据输入/输出流和缓冲输入/输出流有什么区别?
【发布时间】:2014-09-14 16:35:12
【问题描述】:

让我在这篇文章的开头谨慎一点。我是一个完全的初学者,我真的很想学习和理解做这些事情的最佳方法。除了我的首要问题,在什么情况下我可以使用DataInput/OutputStreamBufferedInput/ouputStream?谢谢

【问题讨论】:

标签: java stream binary


【解决方案1】:

DataInputStream 处理二进制数据,而 BufferedReader 处理字符数据。

所有的原始数据类型都可以通过DataInputStream类中的相应方法来处理,而BufferedReader类只能读取字符串数据,需要将它们解析成各自的原始数据。

DataInputStream 是过滤流的一部分,而 BufferedReader 不是。

DataInputStream 是二进制流,消耗的内存空间较少,而 BufferedReader 是字符流,消耗的内存空间更多。

要处理的数据在DataInputStream中是有限的,而在BufferedReader中要处理的字符数范围很广。

【讨论】:

  • 感谢您富有洞察力的回答。我想我现在开始明白了。
【解决方案2】:

DataInput/OutputStream 用于将原始数据(int、boolean 等)等数据读/写到文件中。

BufferedInput/ouputStream 是提高性能的包装器。

事实上,你可以像这样使用它们:

DataOutputStream dos = new DataOutputStream(new BufferedOutputStream(file));

这背后的整个设计就是装饰者模式。您可以使用多个其他装饰器,例如 ObjectOutputStream 作为包装器。

【讨论】:

  • 也感谢您对您的深刻回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-02
  • 1970-01-01
  • 2015-01-09
  • 1970-01-01
  • 1970-01-01
  • 2019-01-25
  • 1970-01-01
相关资源
最近更新 更多