字节缓冲流
缓冲流的好处
提高IO效率,减少访问磁盘的次数;
使用说明
数据存储在缓冲区中,通过flush()方法将缓冲区的数据写入文件中。也可以直接使用close()方法,因为close方法里就调用了flush()方法。
1、BufferInputStream(字节输入缓冲流)
public static void main(String[] args) throws Exception {
//创建文件输入字节流,定义输入文件地址
FileInputStream fileInputStream = new FileInputStream("D:\\stu\\aaa.txt");
//创建字节输入缓冲流对象,传入文件输入流
BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
//读取数据
int data = 0;
while ((data = bufferedInputStream.read()) != -1) {
System.out.print((char) data);
}
//关闭字节缓冲流。这里不需要关闭文件输入流,因为在关闭字节缓冲流时,它已经帮我们做了相应的操作
bufferedInputStream.close();
}
这里也可以使用自定义缓冲区
public static void main(String[] args) throws Exception {
//创建文件输入字节流,定义输入文件地址
FileInputStream fileInputStream = new FileInputStream("D:\\stu\\aaa.txt");
//创建字节输入缓冲流对象,传入文件输入流
BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
//读取数据
int data = 0;
//自定义缓冲区存储字节数据
byte[] buf = new byte[1024];
while ((data = bufferedInputStream.read(buf)) != -1) {
System.out.print((char) data);
}
//关闭字节缓冲流。这里不需要关闭文件输入流,因为在关闭字节缓冲流时,它已经帮我们做了相应的操作
bufferedInputStream.close();
}
2、BufferOutputStream(字节输出缓冲流)
public static void main(String[] args) throws Exception {
//创建文件输出字节流,定义输出文件地址
FileOutputStream fileOutputStream = new FileOutputStream("D:\\stu\\ddd.txt");
//创建字节缓冲流对象,传入文件输入流
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
//输出数据
//输出ASCII码数据
bufferedOutputStream.write(98);
//输出字节码数据
bufferedOutputStream.write("hello word".getBytes());
//通过flush()方法将缓冲区数据刷新到文件中
//这里也可以省略flush()方法,因为在close()方法中就调用了flush()方法帮助我们将数据刷新到文件中(但是不建议省略,假如在缓冲流关闭前系统中断,会导致数据无法正常写入文件)
bufferedOutputStream.flush();
//关闭字节输出缓冲流。这里不需要关闭文件输入流,因为在关闭字节缓冲流时,它已经帮我们做了相应的操作
bufferedOutputStream.close();
}

浙公网安备 33010602011771号