2016-09-20 68 views
-6

FileInputStream和ByteArrayInputStream有什么区别? 什么时候我们应该使用它们? 什么是使用一个超过其他Java文件处理类

+3

阅读javadoc – Jens

回答

0

  1. 字节面向流(8位)
  2. 好为二进制数据,如一个Java .class文件,图像等
  3. 的好处
  4. 好 “面向机器”

读/写器

  1. 炭(UTF-16)面向流(16位)在一个时间
  2. 一个字符
  3. 好为文本,如一个Java源
  4. 好为 “人性化” 的数据

缓冲

  1. 许多字节/ characte RS在时间
  2. 总是除非有用的证据,否则

两个ByteArrayInputStream的和的FileInputStream服务于同一目的,即读取二进制数据,并都实现一个共同的抽象超InputStream.So这是非常艰难的发现中了鲜明的对比但是通用逻辑规定阵列已经存在于存储器中,因此与存在于文件系统中的文件相比,它们可以更快地被访问。另外,如果您仔细阅读这两个类的文档,您将发现ByteArrayInputStream的读取功能无法阻止,而如果没有输入可用,则FileInputStream中的读取功能会阻塞。

所以,如果你是无所适从使用时再想想这些:

  1. 以什么形式我有数据,文件或数组?
  2. 速度真的是一个要求吗?如果是,那么去ByteArray。但请记住,您无法在ByteArray中存储太多的信息,因为它们存在于内存中。
+0

https://www.quora.com/What-is-the-difference-between-File-input-output-stream-and-ByteArray-input-output-stream –