首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataOutputStream到数组

DataOutputStream到数组
EN

Stack Overflow用户
提问于 2016-01-28 14:35:45
回答 1查看 2.3K关注 0票数 0

是否有任何方法将DataOutputStream内容写入ArrayString,而不管它包含哪种类型的数据?

代码语言:javascript
复制
DataOutputStream output = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(String dataPath)));

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-28 14:40:05

使用ByteArrrayOutputStream。

https://docs.oracle.com/javase/7/docs/api/java/io/ByteArrayOutputStream.html

代码语言:javascript
复制
ByteArrayOutputStream baos = new ByteArrayOutputStream();
OutputStream os = new DataOutputStream(baos);
os.write(...);
byte[] data = baos.toByteArray();
String dataAsString = new String(data, "UTF-8"); // or whatever encoding you are using

您也可以使用以下策略:

代码语言:javascript
复制
class CompositeOutputStream implements OutputStream {
    private OutputStream first,second;
    public CompositeOutputStream(OutputStream first, OutputStream second) {
        this.first = first;
        this.second=second;
    }

    public void write(int b) throws IOException {
        first.write(b);
        second.write(b);
    }

    // etc.
}

用于:

代码语言:javascript
复制
ByteArrayOutputStream baos = new ByteArrayOutputStream();
OutputStream os = new CompositeOutputStream(new DataOutputStream(...), baos);
os.write(...);
byte[] data = baos.toByteArray();
String dataAsString = new String(data, "UTF-8"); // or whatever encoding you are using
// etc.

"baos“只是写在原始DataOutputStream上的”镜子“

您仍然需要正确地处理异常,并且要小心写入的数据量(将所有东西保存在内存中可能导致内存不足)等等。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35064323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档