outputStream转inputStream

书欣 Java经验 发布时间:2023-01-12 22:22:22 阅读数:20771 1
下文笔者讲述OutputStream转inputStream的方法大全,如下所示

方法一:使用byte array缓存转换

 
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ByteArrayInputStream inputStream = new ByteArrayInputStream(baos.toByteArray());

使用以上方法,需注意baos.toByteArray()方法运行以前
 数据需完全写入
 

方法二:使用Pipes

 
PipedInputStream in = new PipedInputStream();
PipedOutputStream out = new PipedOutputStream(in);
new Thread(
  new Runnable(){
    public void run(){
      class1.putDataOnOutputStream(out);
    }
  }
).start();
class2.processDataFromInputStream(in);
注意事项:
    PipedInputStream中存储数据的数组大小默认为1024
     使用过程中不可扩充
    当一次性写入的数据超过这个数,则会有个AssertionError抛出
 
 当然,我们可以在初始化PipedInputStream的时候进行设置。
   PipedOutputStream out = new PipedOutputStream();
   PipedInputStream in = new PipedInputStream(out);

方法三:使用Circular Buffers

 
<!-- https://mvnrepository.com/artifact/org.ostermiller/utils -->
<dependency>
    <groupId>org.ostermiller</groupId>
    <artifactId>utils</artifactId>
    <version>1.07.00</version>
</dependency>
 
CircularByteBuffer cbb = new CircularByteBuffer();
new Thread(
  new Runnable(){
    public void run(){
      class1.putDataOnOutputStream(cbb.getOutputStream());
    }
  }
).start();
class2.processDataFromInputStream(cbb.getInputStream());
从以上的示例中,可以得出第一种方法
是我们常用的方法
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202301/16735340135350.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者