让我在这篇文章的开头提出一个警告。我是一个完全的初学者,我真的很想学习和理解做这些事情的最好方法。除了我的第一个问题,在什么情况下我可以使用DataInput/OutputStream
和BufferedInput/ouputStream
?由于
DataInputStream处理二进制数据,而BufferedReader处理字符数据。
所有的原语数据类型都可以使用DataInputStream类中相应的方法来处理,而只有字符串数据可以从BufferedReader类中读取,并且需要将它们解析为各自的原语。
DataInputStream是过滤流的一部分,而BufferedReader不是。
DataInputStream消耗较少的内存空间,因为它是二进制流,而BufferedReader消耗更多的内存空间,因为它是字符流。
要处理的数据在DataInputStream中是有限的,而要处理的字符数量在BufferedReader中有很大的范围。
DataInput/OutputStream用于读取/写入数据,如原语(int, boolean等)到文件中。
BufferedInput/outputstream是一个提高性能的包装器。
实际上你可以这样使用它们:
DataOutputStream dos = new DataOutputStream(new BufferedOutputStream(file));
这背后的整个设计是Decorator Pattern。您可以使用多个其他装饰器,如ObjectOutputStream作为包装器