Java DataInput/OutputStream和BufferedInput/OutputStream之间有什么区别?

Java DataInput/OutputStream和BufferedInput/OutputStream之间有什么区别?,java,stream,binary,Java,Stream,Binary,让我在这篇文章的序言中谨慎一点。我是一个完全的初学者,我真的很想学习和理解做这些事情的最好方法。除了我的首要问题,在什么条件下我可以使用DataInput/OutputStream和BufferedInput/OutputStream?感谢DataInputStream处理二进制数据,而BufferedReader处理字符数据 所有基元数据类型都可以使用DataInputStream类中的相应方法进行处理,而只有字符串数据可以从BufferedReader类中读取,它们需要解析为相应的基元 Da

让我在这篇文章的序言中谨慎一点。我是一个完全的初学者,我真的很想学习和理解做这些事情的最好方法。除了我的首要问题,在什么条件下我可以使用
DataInput/OutputStream
BufferedInput/OutputStream
?感谢

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

所有基元数据类型都可以使用DataInputStream类中的相应方法进行处理,而只有字符串数据可以从BufferedReader类中读取,它们需要解析为相应的基元

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

DataInputStream由于是二进制流而占用较少的内存空间,而BufferedReader由于是字符流而占用较多的内存空间


要处理的数据在DataInputStream中是有限的,因为要处理的字符数在BufferedReader中有很大的范围

DataInput/OutputStream用于将原语(int、boolean等)之类的数据读/写到文件中

BufferedInput/OutStream是用于提高性能的包装器

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

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

这背后的整个设计是装饰图案。您可以使用多个其他装饰器(如ObjectOutputStream)作为包装器。

duplicate:另请参见:谢谢您富有洞察力的回答。我想我现在开始明白了。谢谢你富有洞察力的回答。