内存输出流
1.什么是内存输出流 * 该输出流可以向内存中写数据, 把内存当作一个缓冲区, 写出之后可以一次性获取出所有数据 * 2.使用方式 * 创建对象: new ByteArrayOutputStream() * 写出数据: write(int), write(byte[]) * 获取数据: toByteArray() * FileInputStream fis = new FileInputStream("a.txt"); ByteArrayOutputStream baos = new ByteArrayOutputStream(); int b; while((b = fis.read()) != -1) { baos.write(b); } //byte[] newArr = baos.toByteArray(); //将内存缓冲区中所有的字节存储在newArr中 //System.out.println(new String(newArr)); System.out.println(baos); fis.close();
作用: 先写到内存中出, 然后一次性全部写出
应用: QQ聊天信息 短信等。 等编辑完再一次发送出去
定义一个文件输入流,调用read(byte[] b)方法,将a.txt文件中的内容打印出来(byte数组大小限制为5) * FileInputStream fis = new FileInputStream("a.txt"); //创建字节输入流,关联a.txt ByteArrayOutputStream baos = new ByteArrayOutputStream(); //创建内存输出流 byte[] arr = new byte[5]; //创建字节数组,大小为5 int len; while((len = fis.read(arr)) != -1) { //将文件上的数据读到字节数组中 baos.write(arr, 0, len); //将字节数组的数据写到内存缓冲区中 } System.out.println(baos); //将内存缓冲区的内容转换为字符串打印 fis.close();
竹杖芒鞋轻胜马,一蓑烟雨任平生。
回首向来萧瑟处,也无风雨也无晴。