Java如何获取InputStream的内容作为字符串?

我们可以使用下面的代码将的内容InputStream转换为String。首先,我们使用FileInputStreamcreate来连接要读取的文件。IOUtils.toString(InputStream input, String encoding)方法获取的内容InputStream并返回其字符串表示形式。最后,我们需要InputStream在finally块中关闭。

package org.nhooo.example.commons.io;

import org.apache.commons.io.IOUtils;

import java.io.InputStream;
import java.io.FileInputStream;
import java.io.File;
import java.nio.charset.StandardCharsets;

public class InputStreamToString {
    public static void main(String[] args) throws Exception {
        // 创建用于读取data.txt文件内容的输入流。
        try (InputStream is = new FileInputStream(new File("data.txt"))) {
            // 使用UTF-8以字符串形式获取输入流的内容
            // 作为字符编码。
            String contents = IOUtils.toString(is, StandardCharsets.UTF_8);
            System.out.println(contents);
        }
    }
}

Maven依赖

<!-- http://repo1.maven.org/maven2/commons-io/commons-io/2.6/commons-io-2.6.jar -->
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.6</version>
</dependency>