让我谨慎地为这篇文章开篇。 我是一个初学者,我真的很想学习和理解做这些事情的最佳方法。 除了我的首要问题,在什么情况下可以使用DataInput/OutputStream和BufferedInput/ouputStream? 谢谢
重复:stackoverflow.com/questions/1830698/
另请参阅:stackoverflow.com/a/9805247/2206044
stackoverflow.com/a/8921601/2194456和way2java.com/io/bufferedinputstream-and-bufferedoutputstream
DataInputStream处理二进制数据,而BufferedReader处理字符数据。
可以使用DataInputStream类中的相应方法来处理所有原始数据类型,而只能从BufferedReader类读取字符串数据,并且需要将它们解析为相应的原始数据。
DataInputStream是过滤流的一部分,而BufferedReader不是。
DataInputStream消耗的内存空间较少,因为它是二进制流,而BufferedReader消耗的内存空间更多,因为它是字符流。
DataInputStream中限制了要处理的数据,因为BufferedReader中要处理的字符数范围很广。
感谢您的深刻见解。 我想我现在开始了解。
DataInput / OutputStream用于将诸如原语(int,boolean等)的数据读/写到文件中。
BufferedInput / ouputStream是提高性能的包装器。
实际上,您可以像这样同时使用它们:
其背后的整个设计是装饰图案。您可以使用多个其他装饰器(例如ObjectOutputStream)作为包装器。
也感谢您的深刻见解。