[英]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.