2012-03-21 102 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