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

    效果:

  • 相关阅读:
    Bzoj3998 [TJOI2015]弦论
    Bzoj3669 [Noi2014]魔法森林
    Bzoj2157 旅游
    Bzoj3282 Tree
    POJ1743 Musical Theme
    CodeVs1515 跳
    Bzoj1013 [JSOI2008]球形空间产生器sphere
    Bzoj1007 [HNOI2008]水平可见直线
    洛谷P3120 [USACO15FEB]Cow Hopscotch
    洛谷P3112 [USACO14DEC]后卫马克Guard Mark
  • 原文地址:https://www.cnblogs.com/duanwandao/p/9795839.html
Copyright © 2011-2022 走看看