字节数组输入流写出操作

和文件的写出类似,稍有不同

不同之处为在文件写出中需要关联文件

 

OutputStream os = new BufferedOutputStream(new FileOutputStream("F:/win10/test/aCopy.txt"));
        // 或者
        os = new BufferedOutputStream(new FileOutputStream(new File("F:/win10/test/aCopy.txt")));

 

而在ByteArrayOutputStream中不关联文件,且不能使用多态

ByteArrayOutputStream bos = new ByteArrayOutputStream();

 

完整代码如下

package com.machuang.io.others;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class ByteArray {

    public static void main(String[] args) throws IOException {
//        byteArrayRead();
        byte[] recBytes = byteArrayWrite();
        System.out.println(new String(recBytes, 0, recBytes.length));

    }

    public static byte[] byteArrayWrite() throws IOException {
        // 创建需要写出的字节数组
        String msg = "和文件写出类似,稍有不同";
        byte[] sentData = msg.getBytes();
        
        // 创建 ByteArrayOutputStream对象
        // 注意:此处需要使用 ByteArrayOutputStream对象的新方法,不能使用多态
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        
        // 写出
        bos.write(sentData, 0, sentData.length);
        
        byte[] receiveBuf = bos.toByteArray(); // new function
        
        bos.close();

        return receiveBuf;
    }
    
    
    
}

    

 

posted @ 2018-04-13 17:28  Cappuccinom  阅读(298)  评论(0编辑  收藏  举报