byte[] b = new byte[10000];
len = readerIn.read(b); // InputStream
我的字節大小是10000,但InputStream
的大小可能會更低或更高。有沒有辦法只讀取進入InputStream
的數據大小?Java如何從InputStream中讀取收入大小?
byte[] b = new byte[10000];
len = readerIn.read(b); // InputStream
我的字節大小是10000,但InputStream
的大小可能會更低或更高。有沒有辦法只讀取進入InputStream
的數據大小?Java如何從InputStream中讀取收入大小?
可以使用ByteArrayOutputStream
爲此
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int reads = is.read();
while(reads != -1){
baos.write(reads);
reads = is.read();
}
byte[] data = baos.toByteArray();
數據數組具有適當的大小和連續ains所有的數據或InputStream
一次讀取和寫入一個字節的效率非常低,特別是如果輸入流不是內部緩衝的話。 [更好的答案來自鏈接重複問題](http://stackoverflow.com/a/1264737/592139),它通過臨時固定大小的緩衝區使用批量讀取和寫入。 – 2014-09-10 10:36:54
你問如何將輸入流完全讀入正確長度的字節數組?或者你只是想知道流的大小,而不讀它? – 2014-09-10 10:07:32
@Duncan是的我想讀取正確的大小,確切的大小,沒有更多或更少的字節數組,或任何其他類,可以幫助我保存reared字節 – bbbot 2014-09-10 10:10:29
你不能沒有加載它的大小。 – afzalex 2014-09-10 10:12:20