[英]how to write a fixed number of bytes from a bytebuffer into the file in java
[英]Java write bytes from Bytebuffer to File in byte format
我正在使用Android构建自定义文件创建器应用。 我试图将Bytebuffer的内容(即我创建的自定义类的String成员)写入字节类型的文件中。 但是,只要这样做,我都会以String格式获取文件的内容。 我尝试了几种替代方法,例如使用get方法,BufferedOutputStream类,ByteArrayOutputStream类,DataOutputStream,Filechannel类等。这是我的代码:
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
这是我所有字符串的串联。 我想做的是将与字节相同的内容写入文件,而不是作为人类可读的字符串。 我在这里想念的是什么? 任何帮助表示赞赏。
因此,您需要直接写入数据,而不是构建Strings并从中获取字节数组,然后将其放入ByteBuffer
并将其写入文件。 我将摆脱ByteBuffer
并使用DataOutputStream
的各种API来写入单个字节或整数或其他内容。
例如,完全不清楚是要以8字节还是以4字节整数形式写入12345678
,因此无法不进一步帮助您。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.