我正在尋找一種方法來從DataInputStream中讀取大量int並將它們加載到數組中。我知道我需要閱讀多少個int
,但如果有一種更簡潔的方式,而不是簡單地迭代,它會很好。從DataInputStream讀取int []
只有使用DataInputStream#read(byte[])
方法,已經有一種方法可以對字節數組執行此操作,但int[]
沒有等效方法。我顯然可以通過創建一個長度乘以4的字節數組將數據讀取到一個字節數組中,但我確實需要使用int
s中的數據。
我看到它的方式,有三種可能性,我可以使用:
- 不知何故直接加載數據到
int[]
。 - 以某種方式將
byte[]
轉換爲int[]
。 - 遍歷數組,然後使用
readInt()
。
雖然前兩種解決方案更受青睞,但我目前還不知道採用哪種方法。有沒有簡單的方法來做到這一點沒有迭代?
在我看來,循環中的readInt()應該可以正常工作。如果正確打開DataInputStream應該被緩衝,所以開銷會很小。 –
@HotLicks這可能是我最終做的。我只是喜歡這個特殊的代碼儘可能快,因爲我的應用程序可能會做很多文件IO。 –
除非你進入nio的東西(如果有的話),或者本地方法的東西,沒有辦法做內存映射I/O,這樣你就可以直接寫入一個int數組。 –