IO流——内存流(字节数组流)之ByteArrayInputStream

时间:2021-03-01 11:45:47
<span style="font-size:18px;">package com.io.demo02;

import java.io.ByteArrayInputStream;
import java.io.IOException;

/**
 * ByteArrayInputStream:在创建对象时传入数组即可,不需要传文件,也没有新增加的方法,close关闭无效。
 * 流本身就是内存中的资源,流中的内容也是内存中的资源,所以不用手动关闭,内存会给他释放,所以不用关闭流
 * 
 * 流的内容是内存中的资源,不访问磁盘。
 * */
public class ByteArrayDemo01 {
	public static void main(String[] args) throws IOException {
		String str = "做人要脚踏实地,不能投机取巧";
		byte[] bt = str.getBytes();

		readArray(bt);
	}

	private static void readArray(byte[] bt){
		/**
		 * ByteArrayInputStream声明时不抛出异常的原因:没有和外界产生关系
		 * */
		ByteArrayInputStream bais = new ByteArrayInputStream(bt);
		
		int hasRead = 0;
		byte[] bt1 = new byte[1024];
		StringBuilder sb = new StringBuilder();
		try {
			while((hasRead = bais.read(bt1))!=-1){
				sb.append(new String(bt1, 0, hasRead));
			}
			System.out.println(sb);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
</span>