我正在用Android構建自定義文件創建應用程序。我試圖將Bytebuffer的內容寫入到一個字節類型的文件中,這些Bytebuffer是我創建的自定義類的String成員。但是,每當我這樣做時,我都以String格式獲取文件的內容。我已經嘗試了幾種方案,如使用get方法,一流的BufferedOutputStream,ByteArrayOutputStream類,DataOutputStream類,Filechannel類等。這裏是我的代碼:Java以字節格式將字節從字節緩衝區寫入文件
ByteBuffer byteBuffer = ByteBuffer.allocate(totalSize);
byteBuffer.put(hm.getDocID().getBytes());
byteBuffer.put(hm.getFextension().getBytes());
byteBuffer.put(hm.getMagic().getBytes());
byteBuffer.put(hm.getFversion().getBytes());
byteBuffer.put(hm.getFsize().getBytes());
byteBuffer.flip();
byte[] bablock = new byte[byteBuffer.remaining()];
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(idHeader));
bos.write(bablock);
bos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
請讓我的idHeader文件內容如下:
12345678-1234-1234-1234-123456789abcjpgIDF1.00000166178
這是我所有的字符串連接。我想要做的是將與字節相同的內容寫入文件,而不是作爲人類可讀的字符串。我在這裏錯過了什麼?任何幫助表示讚賞。
真的很感謝快速回復。我的想法是,我想向創建的文件附加一個唯一的文件ID(即hm.getDocID()。getBytes()),並能夠在用服務器讀取文件後檢索這些數據。你會建議將這個ID(12345678-1234-1234-1234-123456789)寫成8字節還是4字節? –
它不適合4或8字節。如果包含連字符,則至少需要12個,14個。你的問題其實很不明確。你現在寫的方式究竟有什麼錯誤? – EJP
直接使用DataOutputStream解決了我的問題!對於我這樣模糊的問題抱歉。謝謝您的幫助! –