从InputStream中读取文本

这个问题在这里已经有了答案:

  • 将InputStream读取/转换为字符串56个答案

  • 取决于您所熟悉的许可证,这是雅加达共享IO库的一个班轮。


    请指定字符编码。 不要浪费代码,引入错误,并用BufferedReader缓慢执行。

    这是一个例子。 你可以用缓冲区大小,编码等参数化它。

    static String readString(InputStream is) throws IOException {
      char[] buf = new char[2048];
      Reader r = new InputStreamReader(is, "UTF-8");
      StringBuilder s = new StringBuilder();
      while (true) {
        int n = r.read(buf);
        if (n < 0)
          break;
        s.append(buf, 0, n);
      }
      return s.toString();
    }
    

    使用Commons-IO可能是最好的选择。 为了您的兴趣,另一种方法是复制所有字节,然后将其转换为字符串。

    public static String readText(InputStream is, String charset) throws IOException {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        byte[] bytes = new byte[4096];
        for(int len;(len = is.read(bytes))>0;)
            baos.write(bytes, 0, len);
        return new String(baos.toByteArray(), charset);
    }
    
    链接地址: http://www.djcxy.com/p/13725.html

    上一篇: Read text from InputStream

    下一篇: BufferedInputStream To String Conversion?