首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将BufferedInputStream传递给接受InputStream的方法

将BufferedInputStream传递给接受InputStream的方法
EN

Stack Overflow用户
提问于 2016-10-25 21:18:57
回答 2查看 575关注 0票数 1

我正在调用一个接受InputStream的方法。下面是github:https://github.com/drewnoakes/metadata-extractor/blob/2.8.0/Source/com/drew/imaging/ImageMetadataReader.java#L89上的方法

我用BufferedInputStream调用这个方法,因为它是InputStream的一个子类,所以它应该可以工作,但是我一直得到这个错误:

代码语言:javascript
复制
No signature of method: static com.drew.imaging.ImageMetadataReader.readMetadata() is applicable for argument types: (java.io.BufferedInputStream) values: [java.io.BufferedInputStream@74d4ec5f]
Possible solutions: readMetadata(java.io.File), readMetadata(java.io.BufferedInputStream, boolean). Stacktrace follows:
Message: No signature of method: static com.drew.imaging.ImageMetadataReader.readMetadata() is applicable for argument types: (java.io.BufferedInputStream) values: [java.io.BufferedInputStream@74d4ec5f]
Possible solutions: readMetadata(java.io.File), readMetadata(java.io.BufferedInputStream, boolean)
    Line | Method
->>  137 | settings  in com.foo.scanner.AdminController
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|    198 | doFilter  in grails.plugin.cache.web.filter.PageFragmentCachingFilter
|     63 | doFilter  in grails.plugin.cache.web.filter.AbstractFilter
|     53 | doFilter  in grails.plugin.springsecurity.web.filter.GrailsAnonymousAuthenticationFilter
|     62 | doFilter  in grails.plugin.springsecurity.web.authentication.logout.MutableLogoutFilter
|     59 | doFilter  in grails.plugin.springsecurity.web.SecurityRequestHolderFilter

这是我的代码:

代码语言:javascript
复制
println file62.name //prints name of the file
println file62.inputStream.getClass() //prints java.io.BufferedInputStream
InputStream is = (InputStream)file62.inputStream
Metadata metadata = com.drew.imaging.ImageMetadataReader.readMetadata(is) //readMetadata expects InputStream

我有一个图书馆的版本:

✗ grails dependency-report | grep "drew" +--- com.drewnoakes:metadata-extractor:2.9.1 +--- com.drewnoakes:metadata-extractor:2.9.1 +--- com.drewnoakes:metadata-extractor:2.9.1

这是2.9.1:https://github.com/drewnoakes/metadata-extractor/blob/2.9.1/Source/com/drew/imaging/ImageMetadataReader.java#L88中的方法

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-25 21:24:00

异常表示该方法需要一个File,或一个BufferedInputStream和一个布尔值。没有期望只需要一个BufferedInputStream的重载。

如果您确信形式参数与实际参数匹配,那么这种异常(由形式参数不匹配引起)最可能的原因是周围有一个旧的jar。运行mvn cleangradle clean,检查web容器的lib目录,通常从系统中消除错误的jars。

票数 3
EN

Stack Overflow用户

发布于 2016-10-27 08:25:40

@保尔·希克斯是完全正确的。您所调用的API早在2012年就受到了误导,并带有极大的偏见被删除,当时的承诺是:

https://github.com/drewnoakes/metadata-extractor/commit/9f3854b81313f1ea498b991d36253f221db79dca#diff-8fa1b864bada9112be69ec00784af715

GitHub建议在2.7.0版中删除API。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40249884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档