java - 从 BufferedReader 获取 OutputStream

标签 java iostream

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

8年前关闭。




Improve this question




我有两个对象:

BufferedReader br;
CMSSignedData cms;

我必须将 cms 内容写入 BufferedReadercms 有这个方法:
 cms.getSignedContent().write(OutputStream os); 

但是如何获得 OutputStream来自 BufferedReader ?

这是我的尝试:
        ByteArrayOutputStream os=new ByteArrayOutputStream();
        cms.getSignedContent().write(os);
        InputStream is=new ByteArrayInputStream(os.toByteArray());  
        BufferedReader br = new BufferedReader(new InputStreamReader(is));

但我认为这不是最好的方法。

最佳答案

我认为您想要的是管道输入/输出流。

PipedOutputStream os = new PipedOutputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(new PipedInputStream(os)));
cms.getSignedContent().write(os);

但是请注意 piet.t 对线程的评论。

以及检查相关的 API 文档:
  • http://docs.oracle.com/javase/7/docs/api/java/io/PipedInputStream.html
  • http://docs.oracle.com/javase/7/docs/api/java/io/PipedOutputStream.html
  • 关于java - 从 BufferedReader 获取 OutputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20399502/

    相关文章:

    java - 在Java中使用已发布的MouseEvent消失的问题

    c++ - 在 C++ 中排序然后打印 vector

    c++ - 如果不包含<string.h>,为什么我的程序可以成功编译?

    c++ - 重定向和时间戳std::cout

    java - 在Android中滚动Activity中的所有元素

    java - 如何使用Java将表格的特定单元格内的文本加粗为PDF?

    java - hibernate 数据检索的改进。

    c++ - 如何在引用超出范围后检测ptr是否仍在引用有效引用

    c++ - 通过boost append 到现有文件

    java - 解析XML返回Java中不正确的子代数