我有一个二进制文件,在我的jar中,我想以二进制模式啜饮其内容,而不是一串字符。关注this example
private byte[] readBinaryFile(String fileName) throws IOException {
InputStream input = getClass().getResourceAsStream(fileName);
ByteArrayOutputStream output = new ByteArrayOutputStream();
for (int read = input.read(); read >= 0; read = input.read())
output.write(read);
byte[] buffer = output.toByteArray();
input.close ();
output.close();
return buffer;
}
这非常简单,但是调用上下文是期望的和Object。如何将此二进制内容传递回调用者,而不是原始数组?我试图使用jaxrs将此二进制数据作为对Web服务的响应。
答案 0 :(得分:0)
正如@Jon所说,来电者应该没问题:
byte[] b = new byte[10];
Object o = b;
这是有效的,因为他指出byte[]
是Object
的一个实例。
不要将bytes
本身与数组混淆,这些确实是原语。无论它们包含什么,所有数组都是对象。
因此,来电者应该收到他的Object
,然后将其作为application/octet-stream
发送给他的来电。