我们什么时候应该使用BufferedInputStream,FileInputStream或DataInputStream?

时间:2017-07-26 07:31:50

标签: java io

我混淆了上面提到的课程。什么时候用?从我的角度来看,所有进来的东西都是java中的流形式吗?那么在哪种情况下使用哪一个来使输入更有效?另外,如果从文件中读取内容,我可以使用DataInputStream或BufferedInputStream吗?

1 个答案:

答案 0 :(得分:0)

的FileInputStream

用于从文件中读取。

请参阅JavaDoc

  

FileInputStream从文件系统中的文件获取输入字节。可用的文件取决于主机环境。 [...]

DataInputStream类

用于读取原始Java类型(您可能使用DataOutputStream编写)并为此提供便利方法,例如: writeInt()

请参阅JavaDoc

  

数据输入流允许应用程序读取原始Java数据类型   来自与机器无关的基础输入流。 [...]

的BufferedInputStream

用于从InputStream(而不是单个字节)执行缓冲块读取,并在读取小块数据时提高性能。大多数时候你想用它来进行文本处理。

请参阅JavaDoc

  

BufferedInputStream将功能添加到另一个输入流 - 即缓冲输入[...]的功能。

当然,您可以按照Decorator Pattern进行组合。

将原始Java类型写入文件的示例:

FileOutputStream write = new FileOutputStream 
DataOutputStream out = new DataOutputStream(write);
out.writeInt(10);
write.close();