Java將文件轉為字節數組。本站提示廣大學習愛好者:(Java將文件轉為字節數組)文章只能為提供參考,不一定能成為您想要的結果。以下是Java將文件轉為字節數組正文
關鍵字:文件,文件流,字節流,字節數組,二進制
摘要:最近任務中碰到的需求是,應用http傳輸二進制數據到服務器對應接口,需求傳輸userId, file(加密後)等一系列混合後的二進制數據。本文旨在記載自己在運用Java將文件轉為字節數組的一些知識了解與匯總。
FileInputStream是InputStream的子類,用於從文件中讀取信息,結構器接納一個File類型或表示文件途徑的String類型。
File file = new File("filePath");
FileInputStream fis = new FileInputStream(file);
ByteArrayOutputStream是用來在內存中創立緩沖區,一切送往“流”的數據都要放置在此緩沖區中。
ByteArrayOutputStream bos = new ByteArrayOutputStream(fis);
byte[] b = new byte[1024];
int len = -1;
while((len = fis.read(b)) != -1) {
bos.write(b, 0, len);
}
留意:ByteArrayOutputStream的write辦法有三種重載方式:
這裡沒有運用第二中,而是運用了第三種,在代碼中每次獲取讀入緩沖區b中的數量,普通為1024(由於定義b的時分顯示指定了長度),只要當讀到開頭的時分,能夠不夠1024個字節了,也會讀取實踐的讀取字節數,但是在寫入緩沖區的時分,假如不指定寫入的數量,即不指定len,那麼就會將整個b全部寫入,即便b中只要一局部內容,但是仍然會寫入1024個字節。這將招致運用toByteArray時,失掉的字節數組不是實踐長度!
這樣就將文件流從InputStream中寫入了ByteArrayOutputStream中。
byte[] fileByte = bos.toByteArray();