2012-03-21 86 views

回答

14

如果问题是:“什么这些类之间的区别”,这里是一个总结,但读了更多信息的Javadoc:

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

DataInputStream是一种用于直接以原始数据类型读取数据的InputStream。

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

+0

DataInputStream不会执行对象。我认为你用ObjectInputStream混淆了它。 – 2012-03-21 13:22:37

+0

谢谢,我上帖 – Snicolas 2012-03-21 13:24:47

1

您可以测试使用instanceof运营商不同InputStream实现:

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

我想你问的区别,所以我给了一些细节

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

DataInputStream:数据输入流允许应用程序以独立于机器的方式从基础输入流读取原始Java数据类型。应用程序使用数据输出流来写入数据,稍后可以通过数据输入流读取数据。

对于更多使用此链接http://docs.oracle.com/javase/6/docs/api/java/io/DataInputStream.html

BufferedInputStream:甲BufferedInputStream为添加了功能,另一个输入流,即缓冲输入和支持mark和reset方法的能力。当创建BufferedInputStream时,会创建一个内部缓冲区数组。当流中的字节被读取或跳过时,内部缓冲区将根据需要从所包含的输入流中重新填充,一次处理多个字节。

+1

非常感谢! – 2012-03-22 05:00:58

+0

你是受欢迎的伙计.. – Raki 2012-03-22 11:55:11

+0

你复制并粘贴文档的开头段落,可能刚刚给出的链接。 – CuriousSid 2012-06-19 11:27:35

相关问题