zoukankan      html  css  js  c++  java
  • Java IO流学习总结六:ByteArrayInputStream、ByteArrayOutputStream

    类的继承关系

    InputStream
    |__ ByteArrayInputStream
                                       
                             
    OutputStream
    |__ ByteArrayOutputStream
                                      

    ByteArrayInputStream 可以将字节数组转化为输入流 。
    ByteArrayOutputStream可以捕获内存缓冲区的数据,转换成字节数组。

    ByteArrayInputStream

    • 构造函数
    public ByteArrayInputStream(byte buf[])
    
    public ByteArrayInputStream(byte buf[], int offset, int length)
    
    
    • 一般方法
    void  close() // 关闭该流并释放与之关联的所有资源。
    
    String  getEncoding() //返回此流使用的字符编码的名称。
    
    int  read()  //读取单个字符。
    
    int  read(char[] cbuf, int offset, int length) //将字符读入数组中的某一部分。
    
    boolean  ready() //判断此流是否已经准备好用于读取。
    

    ByteArrayOutputStream

    • 构造函数
    public ByteArrayOutputStream()
    
    public ByteArrayOutputStream(int size)
    
    • 一般方法
    void write(int b)
    
    void write(byte b[], int off, int len)
    
    void writeTo(OutputStream out)
    
    byte toByteArray()[]
    
    void close()
    

    练习1

    字节流ByteArrayInputStream的读写过程测试

    package com.app;
    import java.io.ByteArrayInputStream;
    import java.io.IOException;
    
    public class A7 {
        
        public static void main(String[] args) {
            
            String mes = "hello,world" ;
            byte[] b = mes.getBytes() ;
            
            ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream( b ) ;
            int result = -1  ;
    
            while( ( result = byteArrayInputStream.read() ) != -1){
                System.out.println( (char) result );
            }
            
            try {
                byteArrayInputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
    }
    

    效果:
    这里写图片描述

    练习2

    ByteArrayOutputStream读出的字节流用FileOutputStream写入文件

    package com.app;
    import java.io.ByteArrayOutputStream;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    public class A6 {
    
        public static void main(String[] args) {
    
            String mes = "你好,world" ;
            byte[] b = mes.getBytes() ;
    
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream() ;
            try {
                byteArrayOutputStream.write( b );
    
                FileOutputStream fileOutputStream = new FileOutputStream( new File( "F:/123.txt" ) ) ;
    
                byteArrayOutputStream.writeTo( fileOutputStream ) ;
    
                fileOutputStream.flush();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }catch (IOException e) {
                e.printStackTrace();
            }finally{
                try {
                    byteArrayOutputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
    
        }
    
    }
    

    效果:
    这里写图片描述

  • 相关阅读:
    poj 1088 滑雪
    位运算与bitset
    hdu 4607 Park Visit
    树的直径
    codeforces 495D Sonya and Matrix
    German Collegiate Programming Contest 2015(第三场)
    BAPC 2014 Preliminary(第一场)
    Benelux Algorithm Programming Contest 2014 Final(第二场)
    E. Reachability from the Capital(tarjan+dfs)
    poj2104 K-th Number(划分树)
  • 原文地址:https://www.cnblogs.com/chenshaogang/p/8879010.html
Copyright © 2011-2022 走看看