我正在尝试使用 IOUtils.toString() 从文件中读取。但是,我收到一条错误消息,提示“IOUtils 无法解决”。
我应该导入什么来允许我使用这个功能?
String everything = IOUtils.toString(inputStream);
谢谢
导入 org.apache.commons.io.IOUtils;
如果仍然无法导入添加到 pom.xml:
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
或直接 jar/gradle 等访问: http ://mvnrepository.com/artifact/commons-io/commons-io/2.5
此外,由于 commons-io 方法 IOUtils.toString(inputStream) 的 2.5 版已被弃用。您应该使用带有编码的方法,即
IOUtils.toString(is, "UTF-8");
import org.apache.commons.io.IOUtils;
Fryta 的回答概述了如何实际使用 IOUtils,而snj 的回答对文件很有用。
如果您使用的是 java 9 或更高版本并且有要读取的输入流,则可以使用InputStream#readAllBytes()。只需从那里创建一个字符串,不要忘记指定字符集。
String s = new String(inputStream.readAllBytes(), StandardCharsets.UTF_8);
或者,您可以尝试以下方式。它对我来说可以读取资源服务器的公钥
final Resource resource = new ClassPathResource("public.key");
String publicKey = null;
try {
publicKey = new String(Files.readAllBytes(resource.getFile().toPath()), StandardCharsets.UTF_8);
} catch (IOException e) {
e.printStackTrace();
}
这是如何使用 Apache IOUtils 在 Java 中将 InputStream 转换为 String 的代码
参考:https ://commons.apache.org/proper/commons-io/javadocs/api-2.4/org/apache/commons/io/IOUtils.html
FileInputStream fis = new FileInputStream(FILE_LOCATION);
String StringFromInputStream = IOUtils.toString(fis, "UTF-8");
System.out.println(StringFromInputStream);
如果您需要更多帮助,请告诉我。