計算機, 程序設計
Java的:InputStream中。 輸入流
Java中,像許多現代編程語言,支持數據輸入流的實現。 在Java中的InputStream是字節流的基類。 這是一個抽象類,也就是說,在該方案的過程中,我們不能創建它的一個實例。 然而,IO包具有一組繼承和擴展的InputStream的功能的類。 要在代碼中使用這個類,它必須從java.io.InputStream中包進口。 接下來,我們考慮的基本功能是提供一個InputStream類,並實現它的主類。
的InputStream類的方法
在繼續的的InputStream類的方法進行詳細的研究,應該提到的是,它實現了可關閉和AutoCloseable接口。 接口可關閉告訴我們,在與它的流動工作的完成必然被關閉。 這是使用的方法接近完成()。 由於在發生錯誤的情況下,大多數的InputStream的類的方法生成異常類型為IOException,要進行一試塊和方法關閉(),以便它跳閘根據操作的結果,試圖體最終使一個單元所需的所有操作。
AutoCloseable接口顯著減少了代碼的維護量,因為它會自動允許close()方法的工作,不添加到您的代碼finally塊。 如果您使用Java的第七或更高版本,一個InputStream可以被放置在所謂的嘗試與資源的所有操作,關閉其流接管。
考慮的InputStream類的基本方法:
- INT可用() - 返回的字節的讀出數;
- INT讀() - 佔有資源的當前字節,並返回整數表示; 如果所有的讀取字節,則返回-1;
- INT讀(字節[]緩衝液) - 讀取字節的可用在所述字節數組類型的形式緩衝器(字節數讀緩衝器等於指定的尺寸,並返回的字節數讀取成功,並且如果所有可用的字節讀,返回-1);
- INT讀(字節[]緩衝器,詮釋偏移字節整型數字) - 以前的方法的過載,不相同的,但具有指定“偏移”位置,並讀取多達在“字節數”設置;
- 長跳躍(長字節數) - 字節跳躍次數,並返回錯過的實際數量。
InputStream中實現幾類設計的不同來源和類型的數據的工作。 下面顯示了繼承樹。
讀取文件
字節流從文件中讀取實現類的FileInputStream數據。 要打開一個文件進行讀取的字節,足以創建類的實例,傳遞給它的構造文件名作為參數。 如果文件被轉移到該名稱不存在,它會拋出類型FileNotFoundException異常的異常。
在一個成功的打開的文件的情況下,與他們的工作進行了使用以上描述的方法,由於是後繼的FileInputStream的InputStream。
讀取原始數據類型
在上面的例子描述了具有字節值的工作,這可以被解釋為碼元。 但是,如果我們需要讀什麼書的整數,分數或一個布爾值? 在Java中的InputStream做到這一點間接地擴展了類DataInputStream類。 這個類是InputStream中,它傳遞給它在創建一個構造函數參數的包裝。 這種線程讀取二進制形式的數據。
DataInputStream類也實現了DataInput中的接口和讀取原始數據類型的方法。 下面是這些方法的列表。
方法名不言自明的 - 他們每個人設計來讀取一個特定的數據類型。
緩衝輸入流
緩衝流數據讀取實現的BufferedInputStream類的Java。 InputStream的是,此類包裝。 該類補充了緩衝流,使您可以在同一時間閱讀不是一個而是幾個字節。 這使得有可能顯著提高操作的性能。 的BufferedInputStream後代的InputStream是一種間接的,因此繼承上述所有方法。
這個類有兩個構造函數:
- 的BufferedInputStream(InputStream的輸入流);
- 的BufferedInputStream(InputStream的輸入流,INT緩衝器大小)
設計者的簽名可以被理解的是,首先設置默認的緩衝區大小,並且在第二,可以手動設置。
結論
我們回顧InputStream的基本實現。 如果您需要將接收的字節轉換為Java中的InputStream為String()的字符串,不幸的是,沒有超載,所以它必須使用專用工具,如IOUtils從Apache的共享庫。
Similar articles
Trending Now