来自 OutputStream 的 ByteArrayOutputStream

Posted

技术标签:

【中文标题】来自 OutputStream 的 ByteArrayOutputStream【英文标题】:ByteArrayOutputStream from OutputStream 【发布时间】:2011-05-04 04:42:48 【问题描述】:

如何在 Java 中从 ByteArrayOutputStream 创建 OutputStream

【问题讨论】:

从您的 cmets 中,您似乎想要从 OutputStream 创建一个 ByteArrayOutputStream。 “我得到了 OutputStream”和“这是相反的!”你真的是这个意思吗? 这么糟糕的标题 【参考方案1】:

以下运行没有错误:

ByteArrayOutputStream stream = new ByteArrayOutputStream();
OutputStream outStream = stream;

如果您查看 ByteArrayOutputStream 的文档,您会发现它扩展了 OutputStream。

【讨论】:

不需要转换为OutputStream @WhiteFang34:我只是删除它。【参考方案2】:

ByteArrayOutputStream OutputStream的子类。

ByteArrayOutputStream bos = ...;
OutputStream os = bos;

【讨论】:

当我这样做时,我在 android 中遇到类转换异常:D 你不应该这样。实际上假设您可以控制该对象,您应该从 OutputStream os=new ByteArrayOutputStream() 开始...... 我从 ContentProvider 获得 OutputStream,但它实际上不在我的控制范围内。 @taranfx 只有在强制转换完成时才会出现 ClassCastException。我的示例代码中没有演员表。正如 MJB 所说,可能不需要直接处理 ByteArrayOutputStream 类型,因为 OutputStream 包含所有相关的主格类型信息。【参考方案3】:

ByteArrayOutputStreamOutputStream。 IE。你可以像这样分配它:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
OutputStream out = baos;

【讨论】:

反向?你在说什么? 我想他想要一个来自 OutputStream 的 BAOS(它是从 HttpUrlConnection.getOutputStream() 之类的东西中获得的),这也是我所处的情况!【参考方案4】:

你可以像下面这样创建一个辅助方法:

public OutputStream convert(ByteArrayOutputStream arrayOutputStreamParam)
        return arrayOutputStreamParam;
    

【讨论】:

以上是关于来自 OutputStream 的 ByteArrayOutputStream的主要内容,如果未能解决你的问题,请参考以下文章

C#中string转二进制一定要先编码吗?byte[] byteArr = Encoding.Default.GetBytes(str);

输出流OutputStream简单理解

MultipartFile转InputStream

Byte数组转字符串的问题

字节数组怎么转string

简单的javahttp服务器,来自java