java中的`InputStream“DataInputStream`和`BufferedInputStream`的区别?

java中的InputStream DataInputStreamBufferedInputStream的区别?

如果问题是:“这些类之间有什么区别”,这里是摘要,但请阅读javadoc以获取更多信息:

inputStream是从流(网络或文件)读取字节的基类。 它提供了从流中读取字节并检测流结束的function。

DataInputStream是一种直接读取数据作为原始数据类型的InputStream。

BufferedInputStream是一种inputStream,它从流中读取数据并使用缓冲区来优化对数据的速度访问。 数据基本上是提前读取的,这减少了磁盘或网络访问。

我想你要求区别所以我要提供一些细节

Input Stream means :此抽象类是表示输入字节流的所有类的超类。需要定义InputStream子类的应用程序必须始终提供返回输入的下一个字节的方法。

DataInputStream :数据输入流允许应用程序以与机器无关的方式从基础输入流中读取原始Java数据类型。 应用程序使用数据输出流来写入稍后可由数据输入流读取的数据。

欲了解更多请使用此链接http://docs.oracle.com/javase/6/docs/api/java/io/DataInputStream.html

BufferedInputStream :BufferedInputStream为另一个输入流添加function – 即缓冲输入并支持标记和重置方法的function。 创建BufferedInputStream时,会创建一个内部缓冲区数组。 当读取或跳过来自流的字节时,内部缓冲区根据需要从包含的输入流中重新填充,一次多个字节。

您可以使用instanceof运算符测试不同的InputStream实现:

 InputStream in = ... if (in instanceof DataInputStream) { // we have an DataInputStream instance } else if (in instanceof BufferedInputStream) { // we have an BufferedInputStream instance }