无法解析符号'IOUtils'

Har*_*nan 32 java apache import android android-studio

我使用以下代码在我的Android应用程序中创建一个临时文件:

public File streamToFile (InputStream in) throws IOException {
    File tempFile = File.createTempFile("sample", ".tmp");
    tempFile.deleteOnExit();
    FileOutputStream out = new FileOutputStream(tempFile);
    IOUtils.copy(in, out);
    return tempFile;
}
Run Code Online (Sandbox Code Playgroud)

现在的问题是Cannot resolve symbol 'IOUtils'.我做了一些谷歌搜索,发现使用IOUtils我需要下载并包含一个jar文件.我从这里下载了jar文件(commons-io-2.4-bin.zip).我commons-io-2.4.jar将从zip 命名的jar添加到我的包中,当我尝试使用以下方法导入它时:

import org.apache.commons.io.IOUtils;
Run Code Online (Sandbox Code Playgroud)

它显示错误Cannot resolve symbol 'io'.所以我尝试导入它像:

import org.apache.commons.*
Run Code Online (Sandbox Code Playgroud)

但我仍然得到错误Cannot resolve symbol 'IOUtils'.

问题1:为什么我收到此错误?怎么解决?

问题2:有没有办法在不使用外部库的情况下从InputStream创建临时文件?或者这是最有效的方法吗?我正在使用android studio.

Ivo*_*nov 97

对于Android Studio:

  1. 文件 - >项目结构...... - >依赖项
  2. 点击右上角的"+",然后选择"图书馆依赖关系"
  3. 在搜索字段中键入:"org.apache.commons.io",然后单击"搜索"
  4. 选择"org.apache.directory.studio:org.apache.commons.io:

快乐编码:)

  • 或者将`compile'org.apache.directory.studio:org.apache.commons.io:2.4'`添加到`build.gradle`文件中 (59认同)

Har*_*nan 7

右键单击commons-io-2.4.jar项目导航器中的文件并单击"添加到项目"解决了该问题.


Tar*_*n A 5

添加以下依赖项解决了问题

 implementation 'org.apache.directory.studio:org.apache.commons.io:2.4'
Run Code Online (Sandbox Code Playgroud)