加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java中的InputStream的多个读取器

发布时间:2020-12-14 17:43:33 所属栏目:Java 来源:网络整理
导读:我有一个InputStream,我从中读取字符.我想让多位读者访问这个InputStream.看来,实现这一目标的合理方法是将传入的数据写入StringBuffer或StringBuilder,并让多个读取器读取.不幸的是,不推荐使用StringBufferInputStream. StringReader读取一个字符串,而不是
我有一个InputStream,我从中读取字符.我想让多位读者访问这个InputStream.看来,实现这一目标的合理方法是将传入的数据写入StringBuffer或StringBuilder,并让多个读取器读取.不幸的是,不推荐使用StringBufferInputStream. StringReader读取一个字符串,而不是一个不断更新的可变对象.我有什么选择?写我自己的

解决方法

输入流这样工作:一旦你读了一部分,它就会永远消失.你不能回去重读它.你可以做的是这样的:
class InputStreamSplitter {
  InputStreamSplitter(InputStream toReadFrom) {
    this.reader = new InputStreamReader(toReadFrom);
  }
  void addListener(Listener l) {
    this.listeners.add(l);
  }
  void work() {
    String line = this.reader.readLine();
        while(line != null) {
      for(Listener l : this.listeners) {
        l.processLine(line);
      }
    }
  }
}

interface Listener {
  processLine(String line);
}

让所有有兴趣的方面实施侦听器并将其添加到InputStreamSplitter

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读