Java:将二进制文件从JAR读入标量,而不是原始字节[]
我有一个二进制文件,在我的jar中,我想以二进制模式来读取它的内容,而不是转换成字符串。跟随Java:将二进制文件从JAR读入标量,而不是原始字节[],java,jax-rs,binaryfiles,Java,Jax Rs,Binaryfiles,我有一个二进制文件,在我的jar中,我想以二进制模式来读取它的内容,而不是转换成字符串。跟随 这非常简单,但是调用上下文是预期的和对象。如何将此二进制内容传回调用方,而不是作为基本数组?我正在尝试使用jaxrs将此二进制数据作为对web服务的响应提供 正如@Jon所指出的,打电话的人应该很好: byte[] b = new byte[10]; Object o = b; 这是因为正如他指出的,byte[]是对象的一个实例 不要将字节本身与数组混淆,它们实际上是原语。所有数组都是对象,无论它们包
这非常简单,但是调用上下文是预期的和对象。如何将此二进制内容传回调用方,而不是作为基本数组?我正在尝试使用jaxrs将此二进制数据作为对web服务的响应提供 正如@Jon所指出的,打电话的人应该很好:
byte[] b = new byte[10];
Object o = b;
这是因为正如他指出的,byte[]
是对象的一个实例
不要将字节
本身与数组混淆,它们实际上是原语。所有数组都是对象,无论它们包含什么
因此,调用者应该接收他的对象
,然后将其作为应用程序/octet流
发送回调用者。字节数组是一个对象。现在还不清楚这里出了什么问题。。。还请注意,一次读取一个字节可能会非常低效。通常最好通过缓冲区一次读取块。哦,或者使用finally
块关闭每个输入和输出流。。。如果您使用的是Java 7,请使用try with resources语句。对不起,您是对的,这不是一个真正的问题Jon,您能给我举一个带有缓冲区的示例吗?下面是一个示例:
byte[] b = new byte[10];
Object o = b;