0

我的 jar 中有一个二进制文件,我想以二进制模式将其内容啜饮,而不是一串字符。按照这个例子

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 服务的响应。

4

1 回答 1

0

正如@Jon 所说,调用者应该没问题:

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

这行得通,因为正如他指出的那样, abyte[]是 的一个实例Object

不要将bytes它们自己(它们确实是原语)与数组混淆。所有数组都是对象,无论它们包含什么。

所以调用者应该收到他的Object,然后将它作为application/octet-stream.

于 2013-10-20T16:58:09.000 回答