我正在尝试在我的代码中使用copyInput方法,但似乎Intellij告诉我该方法不存在
FileUtils.copyInputStreamToFile(response.getEntity()。getContent(),downloadedFile);
我正在使用此处的代码
但似乎这里存在方法
https://commons.apache.org/proper/commons-io/javadocs/api-2.4/org/apache/commons/io/FileUtils.html
我正在使用maven,我尝试使用2.0,2.1,2.4但没有运气
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.2</version>
</dependency>
Java 1.8
以下是错误消息
错误:(201,22)java:找不到符号 symbol:方法copyInputStreamToFile(java.io.InputStream,java.io.File) location:class org.apache.commons.io.FileUtils
答案 0 :(得分:3)
您的类路径中可能还有另一个(较旧的)org.apache.commons.io.FileUtils
,这可以解释您遇到的问题。很可能你的一个依赖项在类路径上有一个旧的org.apache.commons:commons-io
工件。由于groupId的不同,Maven认为它们是不同的工件并将它们放在类路径上。
如果这是真正发生的事情,你可以通过向引用旧commons-io的依赖项添加exclusion
来明确禁止maven包含这种传递依赖:(即使它依赖于它的传递):
<dependency>
<groupId>offending.artifact.groupId</groupId>
<artifactId>offending.artifact.artifactId</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
</exclusion>
</exclusions>
</dependency>
答案 1 :(得分:0)
我能够看到错误的版本使用菜单选项“在IntelliJ IDEA中查找违规类:菜单&gt;导航&gt;类&gt;类型FileUtils”,有类似4 FileUtils,
我在jar文件中导入了正确的版本并解决了问题,谢谢@Anton。
答案 2 :(得分:0)
我遇到了同样的问题,但似乎我有旧版本的commons-io。我通过在pom.xml文件中将版本更改为2.6来修复它。
答案 3 :(得分:0)
FileUtils.copyInputStreamToFile(inputStream,file);
此功能可用于大于两(2)的版本。您需要将此行添加到gradle:
implementation 'org.apache.directory.studio:org.apache.commons.io:2.4'