• Java IO流学习总结六:ByteArrayInputStream、ByteArrayOutputStream


    Java IO流学习总结六:ByteArrayInputStream、ByteArrayOutputStream

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/54946762
    本文出自【赵彦军的博客】

    类的继承关系

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

    效果:
    这里写图片描述

    个人微信号:zhaoyanjun125 , 欢迎关注

  • 相关阅读:
    [python第七课]字符串和常用数据结构
    深浅拷贝与循环引用问题
    CSS居中总结
    CSS布局总结
    跨域
    函数节流与防抖
    浏览器渲染原理及渲染阻塞
    进程与线程
    前端之网络攻击
    前端之缓存
  • 原文地址:https://www.cnblogs.com/zhaoyanjun/p/6394443.html
Copyright © 2020-2023  润新知