程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java將文件轉為字節數組

Java將文件轉為字節數組

編輯:關於JAVA

Java將文件轉為字節數組。本站提示廣大學習愛好者:(Java將文件轉為字節數組)文章只能為提供參考,不一定能成為您想要的結果。以下是Java將文件轉為字節數組正文


Java將文件轉為字節數組

關鍵字:文件,文件流,字節流,字節數組,二進制

摘要:最近任務中碰到的需求是,應用http傳輸二進制數據到服務器對應接口,需求傳輸userId, file(加密後)等一系列混合後的二進制數據。本文旨在記載自己在運用Java將文件轉為字節數組的一些知識了解與匯總。

FileInputStream

應用FileInputStream讀取文件

FileInputStream是InputStream的子類,用於從文件中讀取信息,結構器接納一個File類型或表示文件途徑的String類型。

File file = new File("filePath");
FileInputStream fis = new FileInputStream(file);

ByteArrayOutputStream

應用ByteArrayOutputStream將FileInputStream中的文件數據讀出來

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辦法有三種重載方式:

  • write(int b)
    寫入指定字節
  • write(byte[] b)
    寫入整個字節數組b
  • write(byte[] b, int off, int len)
    寫入字節數組b,從b的第off下標開端,寫入len個字節。

這裡沒有運用第二中,而是運用了第三種,在代碼中每次獲取讀入緩沖區b中的數量,普通為1024(由於定義b的時分顯示指定了長度),只要當讀到開頭的時分,能夠不夠1024個字節了,也會讀取實踐的讀取字節數,但是在寫入緩沖區的時分,假如不指定寫入的數量,即不指定len,那麼就會將整個b全部寫入,即便b中只要一局部內容,但是仍然會寫入1024個字節。這將招致運用toByteArray時,失掉的字節數組不是實踐長度!

這樣就將文件流從InputStream中寫入了ByteArrayOutputStream中。

應用ByteArrayOutputStream的toByteArray()辦法失掉文件的字節數組。

byte[] fileByte = bos.toByteArray();



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved