我有一些代码可以:
content = Java::byte[s].new
f = tar.read(content, 0, s)
content_stream = ByteArrayInputStream.new(content)
到目前为止,这么好
但是当我尝试使用只接受InputStream的方法时,就像这样:
metadata = ImageMetadataReader.readMetadata(content_stream)
我得到以下异常:
NameError: no method 'readMetadata' for arguments (java.io.ByteArrayInputStream) on Java::ComDrewImaging::ImageMetadataReader
我尝试过使用content_stream.to_java(java.io.InputStream)
但仍会产生相同的错误。有什么想法吗?
答案 0 :(得分:1)
单参数readMetadata()接受一个文件;有一个双参数,它带有一个* Buffered * InputStream和一个布尔值。您可以将ByteArrayInputStream包装在BufferedInputStream中,并决定是否要“waitForBytes”,无论这意味着什么......
答案 1 :(得分:0)
这是因为readMetadata有2个签名,一个带有一个参数:一个java.io.File和一个你尝试使用的第二个带有2个参数的ByteArrayInputStream和一个布尔值。尝试使用ImageMetadataReader.readMetadata(content_stream, false)