返回顶部

收藏

java读取InputStream文本内容的几种方式

更多

第一种方式:只使用java的标准库,使用java.util.Scanner

public static String convertStreamToString(java.io.InputStream is) {
    java.util.Scanner s = new java.util.Scanner(is).useDelimiter("\\A");
    return s.hasNext() ? s.next() : "";
}

第二种方式:使用java.io.Reader和StringBuilder

public static String slurp(final InputStream is, final int bufferSize)
{
  final char[] buffer = new char[bufferSize];
  final StringBuilder out = new StringBuilder();
  try {
    final Reader in = new InputStreamReader(is, "UTF-8");
    try {
      for (;;) {
        int rsz = in.read(buffer, 0, buffer.length);
        if (rsz < 0)
          break;
        out.append(buffer, 0, rsz);
      }
    }
    finally {
      in.close();
    }
  }
  catch (UnsupportedEncodingException ex) {
    /* ... */
  }
  catch (IOException ex) {
      /* ... */
  }
  return out.toString();
}

第三种方式: 借助于apache commons的IOUtils类将InputStream复制到StingReader中:

StringWriter writer = new StringWriter();
IOUtils.copy(inputStream, writer, encoding);
String theString = writer.toString();

标签:java,IO,字符串

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. 博主 发表 2016-09-09 00:00:00 Java IO 概念理清
  2. xirruiqiang 发表 2016-11-06 08:35:50 谈谈 javascript 的函数表达式及其应用
  3. xirruiqiang 发表 2016-12-19 16:23:56 Java中的Variance
  4. 方 腾飞 发表 2014-10-19 16:32:08 Java IO教程
  5. 李 璟 发表 2014-12-02 16:01:00 Java IO: 字符流的Buffered和Filter
  6. xiaoli.wang 发表 2018-02-03 15:39:08 Spring Boot 与 Kotlin 定时任务(Scheduling Tasks)
  7. 博主 发表 2015-05-31 07:50:47 字符串数组排序算法总结及算法实现(Java)
  8. darida 发表 2018-04-16 15:48:00 How to kill a (Fire)fox
  9. 刘莉莉 发表 2018-05-06 12:48:24 maven脚手架
  10. wenming.gapo 发表 2018-05-29 15:14:41 Netty 学习系列五:write&flush
  11. puefu.he 发表 2018-06-20 15:46:20 前端开发真的没有后端工资高?
  12. hanze 发表 2018-06-28 15:30:04 synchronized锁机制 之 代码块锁

发表评论