Java如何将InputStream转换为String?

本示例将向您展示如何将转换InputStream为String。在下面的代码片段中,我们读取了一个data.txt文件,该文件可以来自公共目录,也可以来自jar文件。

package org.nhooo.example.io;

import java.io.*;

import java.nio.charset.StandardCharsets;

public class StreamToString {

    public static void main(String[] args) throws Exception {

        StreamToString demo = new StreamToString();

        //获取我们的数据文件的输入流。该文件可以在

        // 应用程序文件夹的根目录或jar文件中的根目录

        // 如果程序打包为jar。

        InputStream is = demo.getClass().getResourceAsStream("/data.txt");

        // 调用方法将流转换为字符串

        System.out.println(demo.convertStreamToString(is));

    }

    private String convertStreamToString(InputStream stream) throws IOException {

        // 要将InputStream转换为String,我们使用

        //Reader.read(char [] buffer)方法。我们迭代直到

        // 读者返回-1,这意味着没有更多数据可发送

        //读。我们使用StringWriter类生成字符串。

        if (stream != null) {

            Writer writer = new StringWriter();

            char[] buffer = new char[1024];

            try {

                Reader reader = new BufferedReader(new InputStreamReader(stream, 

                    StandardCharsets.UTF_8));

                int n;

                while ((n = reader.read(buffer)) != -1) {

                    writer.write(buffer, 0, n);

                }

            } finally {

                stream.close();

            }

            return writer.toString();

        }

        return "";

    }

}

                       

以上是 Java如何将InputStream转换为String? 的全部内容, 来源链接: utcz.com/z/321424.html

回到顶部