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 に答える