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();
                }
            }
    
        }
    
    }
    

    效果:
    这里写图片描述

  • 相关阅读:
    java基础(初始化和清理)
    jquery的常用操作(转载)+ 开发中经常犯的错误总结(原创) (不断补充)
    java基础常见错误归纳(值传递和引用传递)
    FormPanel 综合使用 忆江南
    MyEclipse下Jquery代码自动提示 忆江南
    HQL查询 忆江南
    MD5密码保护 忆江南
    FormPanel数据提交 忆江南
    新手上路
    编码总结,以及对BOM的理解
  • 原文地址:https://www.cnblogs.com/chenshaogang/p/8879010.html
Copyright © 2011-2022 走看看