copyInputStreamToFile方法不存在

时间:2016-05-24 22:22:32

标签: java maven file-io

我正在尝试在我的代码中使用copyInput方法,但似乎Intellij告诉我该方法不存在

FileUtils.copyInputStreamToFile(response.getEntity()。getContent(),downloadedFile);

我正在使用此处的代码

http://ardesco.lazerycode.com/index.php/2012/07/how-to-download-files-with-selenium-and-why-you-shouldnt/

但似乎这里存在方法

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

enter image description here

4 个答案:

答案 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'