java输入输出24:IO流(内存输出流)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yuming226/article/details/84501081
什么是内存输出流

该输出流可以向内存中写数据,把内存当作一个缓冲区,写出之后可以一次性获取所有数据。

使用方式

1、创建对象:new ByteArrayOutStream()。
2、写出数据:write(int),write(byte[])。
3、获取数据:toByteArray()。

注意点

在这里插入图片描述
代码演示如下:

package zifu;

import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class Demo14_ByteArrayOutStream {
	public static void main(String[] args) throws IOException {
		FileInputStream fis = new FileInputStream("10.txt");
		ByteArrayOutputStream baos = new ByteArrayOutputStream();//在内存中创建了可以增长的内存数组
		//byte[] array = new byte[3];
		int b;
		/*while ((b = fis.read(array)) != -1) {
			System.out.println(new String(array,0,b));
		}*/
		
		while ((b = fis.read()) != -1) {//将读取到的数据逐个写到内存中
			baos.write(b);
		}
		
		byte[] arr = baos.toByteArray(); //将缓冲区的数据全部获取出来,并赋值给arr数组。
		System.out.println(new String(arr));
		fis.close();
	}
}
定义一个文件输入流,调用read(byte[] b)方法,将a.txt文件中的内容打印出来(byte数组大小限制为5)
package zifu;

import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class Demo15_Test {
	public static void main(String[] args) throws IOException {
		//1,read(byte[] b)是字节输入流的方法,创建FileInputStream,关联a.txt
		FileInputStream fis = new FileInputStream("10.txt");
		//2,创建内存输出流,将读到的数据写到内存输出流中
		ByteArrayOutputStream baos = new ByteArrayOutputStream();
		//3,创建字节数组,长度为5
		byte[] arr = new byte[5];
		int len;
		
		while ((len = fis.read(arr)) != -1) {
			baos.write(arr,0,len);
		}
		
		//4,将内存输出流的数据全部转换为字符串打印
		System.out.println(baos);
		//5,关闭输入流
		fis.close();
		
		
	}
}

猜你喜欢

转载自blog.csdn.net/yuming226/article/details/84501081