本示例将向您展示如何将转换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 ""; } }