繁体   English   中英

Java:将JAR中的二进制文件读入标量,而不是原始字节[]

[英]Java: Read Binary File From JAR into Scalar, Not Primitive byte[]

我的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;
}

这很琐碎,但是调用上下文是期望和对象。 如何将该二进制内容传递回调用方,而不是作为原始数组传递给调用方? 我正在尝试将此二进制数据作为对使用jaxrs的Web服务的响应进行传递。

正如@Jon所指出的,调用方应该没问题:

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

之所以可行,是因为他指出byte[]Object一个实例。

不要将bytes本身(确实是基元)与数组混淆。 所有数组都是对象,无论它们包含什么内容。

因此,调用者应接收其Object ,然后将其作为application/octet-stream传回给其调用者。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM