2017-08-15 51 views
0

我有一個帶.ats擴展名的二進制文件,我應該將它轉換爲Byte數組。文件轉換成字節流後,我應該跳過一些字節。文件編碼在WINDOWS-1255中。將.ats擴展名的二進制文件轉換爲字節數組

是否在代碼片段正確的方式將其轉換爲字節流?

Path path = Paths.get(fileName); byte[] buffer = new byte[SIZE]; buffer = Files.readAllBytes(path);

回答

1

無需打開流爲Files.readAllBytes(Path)將通過最有效的方式做的一切。

讀取任何文件的字節可以做到的,就像這樣:

byte[] bytes = Files.readAllBytes(Paths.get(fileName)); 

編輯:

該陣列可以被傳遞到ByteArrayInputStream構造函數來獲取流:

new ByteArrayInputStream(bytes); 
+0

謝謝 。我刪除了inputstream部分。由於文件使用WINDOWS-1255編碼,它將對字節的解釋方式產生任何影響。我收到一份文件,說明標題的前兩個字節包含有關標題長度的信息。這是否意味着我應該讀取字節數組的前兩個字節來獲取標題長度。我正試圖從基於文檔的文件中提取數據。我的問題可能是原始的,但我無法提取正確的數據 – user3065525

+0

是的,您可以使用read(byte [] b,int off,int len)方法簡單地讀取ByteArrayInputStream的字節。 – glf4k

相關問題