Java IO流---字节缓冲流
在加入缓冲流之前,我们是直接使用字节流或者字符流文件做读写操作。此操作,效率和性能都差。
使用缓冲流可以让程序高效地读写文件,原理是将数据暂时放至缓冲区,然后再一起读取或写入。
BufferedInputStream: 创建此类对象时,对象中包含了一个用于缓冲数据的数组。
BufferedOutputStream:创建此类对象,程序可以将各个字节先写入底层输出流,而不会针对每
个字节去调用底层系统。
代码示例:
package com.seven.javaSE; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; //字节缓冲流 public class BufferStreamDemo { public static void main(String[] args) { byteReader(); byteWrite(); } //字符缓冲输入流 public static void byteReader() { try { InputStream in = new FileInputStream("C:/TestFile/hello.txt"); //将字节输入流加入到字节缓冲流中 BufferedInputStream bis = new BufferedInputStream(in); byte [] bytes = new byte[1024]; int len=-1; while((len=bis.read(bytes))!=-1) { System.out.println(new String(bytes,0,len)); } //关闭缓冲流,而不用显式关闭字节流,因为缓冲流关闭时,就会关闭字节流 bis.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } //字符缓冲输入流 public static void byteWrite() { try { OutputStream out = new FileOutputStream("c:/TestFile/target.txt"); BufferedOutputStream bos = new BufferedOutputStream(out); String str = "我是字节缓冲流:在字节流基础上加入缓冲,增强读写效率"; bos.write(str.getBytes()); bos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
本文来自博客园,作者:藤原豆腐渣渣,转载请注明原文链接:https://www.cnblogs.com/javafufeng/p/16385779.html