Androidでカスタムファイル作成アプリケーションを構築しています。私は作成したカスタムクラスのStringメンバであるBytebufferの内容をバイト型のファイルに書き込もうとしています。しかし、私はいつでも、ファイルの内容をString形式で取得します。私はなどここで使用してgetメソッド、なBufferedOutputStreamクラス、ByteArrayOutputStreamクラス、DataOutputStreamを、のFileChannelクラス、などいくつかの選択肢を試したことは私のコードです:BytebufferからBytebufferからByte形式のファイルへのバイト書き込み
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を8バイトまたは4バイトとして(12345678-1234-1234-1234-123456789)書くといいでしょうか? –
4バイトまたは8バイトのいずれにも適合しません。ハイフンを含める場合は、少なくとも12,14が必要です。あなたの質問は本当に最も不明です。あなたは今それを書いている方法で正確に何が間違っていますか? – EJP
DataOutputStreamを使用して直接問題を解決しました!私のようなあいまいな質問に対する謝罪。助けてくれてありがとう! –