我有一些代码可以做到:
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),但仍然产生相同的错误。有什么想法吗?
发布于 2013-05-16 16:13:21
单参数readMetadata()接受一个文件;有一个两个参数接受一个*Buffered*InputStream和一个布尔值。您可以将ByteArrayInputStream包装在BufferedInputStream中,并决定是否要“waitForBytes”,无论这意味着什么……
发布于 2013-05-16 16:09:38
这是因为readMetadata有两个签名,一个带有一个参数:一个是java.io.File,另一个是您尝试使用的带有两个参数、一个ByteArrayInputStream和一个布尔值的签名。尝试用ImageMetadataReader.readMetadata(content_stream, false)替换您的代码
https://stackoverflow.com/questions/16581809
复制相似问题