Java:从JAR读取二进制文件到标量,而不是原始字节[]

时间:2013-10-20 16:38:27

标签: java jax-rs binaryfiles

我有一个二进制文件,在我的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服务的响应。

1 个答案:

答案 0 :(得分:0)

正如@Jon所说,来电者应该没问题:

byte[] b = new byte[10];
Object o = b;

这是有效的,因为他指出byte[]Object的一个实例。

不要将bytes本身与数组混淆,这些确实是原语。无论它们包含什么,所有数组都是对象。

因此,来电者应该收到他的Object,然后将其作为application/octet-stream发送给他的来电。