2016-09-20 70 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 –