要导入什么来使用IOUtils.toString()?

use*_*101 20 java apache io tostring

我试图使用IOUtils.toString()从文件中读取.但是,我收到一条错误消息"IOUtils无法解决".

我应该导入什么才能让我使用这个功能?

String everything = IOUtils.toString(inputStream);
Run Code Online (Sandbox Code Playgroud)

谢谢

Fry*_*yta 29

import org.apache.commons.io.IOUtils;

如果仍然无法导入添加到pom.xml:

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.5</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

或直接jar/gradle等访问:http://mvnrepository.com/artifact/commons-io/commons-io/2.5

此外,因为版本2.5的commons-io方法IOUtils.toString(inputStream)已被弃用.你应该使用编码方法ie

IOUtils.toString(is, "UTF-8");
Run Code Online (Sandbox Code Playgroud)

  • 相同的方法名称,但有一个附加参数 - 编码。'IOUtils.toString(is, "UTF-8");' (2认同)

kra*_*jic 11

import org.apache.commons.io.IOUtils;

  • 无法导入此内容。请帮忙 (3认同)

tho*_*dge 5

Fryta 的回答概述了如何实际使用 IOUtils,而snj 的回答适用于文件。

如果您使用的是 java 9 或更高版本并且您有一个要读取的输入流,则可以使用InputStream#readAllBytes()。只需从那里创建一个字符串,不要忘记指定字符集。

String s = new String(inputStream.readAllBytes(), StandardCharsets.UTF_8);
Run Code Online (Sandbox Code Playgroud)

  • 当“inputStream”源自“Path”(或“File”,您可以[轻松转换为“Path”](https://docs.oracle.com/en/java/javase/17/docs/ api/java.base/java/io/File.html#toPath())),您可以使用 [`String s = Files.readString(path);`](https://docs.oracle.com/en/ java/javase/17/docs/api/java.base/java/nio/file/Files.html#readString(java.nio.file.Path)) 首先。否则,这种基于“readAllBytes()”的解决方案是最实用的方法。 (2认同)