java
IO通过缓冲流来提高读写效率,普通的字节、字符流都是一个字节一个字符这样读取的,而缓冲流则是将数据先缓冲起来,然后一起写入或者读取出来。
package com.io; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; public class TestBufferedString { public static void main(String[] args) throws Exception { // 指定要读取文件的缓冲输入字节流 BufferedInputStream in = new BufferedInputStream(new FileInputStream("F:\photo\IMG0460A.jpg")); File file = new File("F:\IMG0460A.jpg"); if (file != null) { file.createNewFile(); } // 指定要写入文件的缓冲输出字节流 BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(file)); byte[] bb = new byte[1024];// 用来存储每次读取到的字节数组 int n;// 每次读取到的字节数组的长度 while ((n = in.read(bb)) != -1) { out.write(bb, 0, n);// 写入到输出流 } out.close();// 关闭流 in.close(); } }
缓冲处理流包括:BufferedInputStream,BufferedOutputStream,BufferedReader,bufferedWriter。
BufferedInputStream比较常用的几个方法是:
1、available()返回输入流中估计的字节数。
2、read()返回一个流中的一个字节。
3、read(byte[],int,int)从此字节输入流中给定偏移量处开始将各字节读取到指定的 byte 数组中。
BufferedOutputStream比较常用的几个方法是:
1、flush()刷新缓冲的输出流。
2、write(int)将指定的字节写入输出流。
3、write(byte[],int,int)从此字节输出流中给定偏移量处开始将各字节写入到指定的 byte 数组中。
BufferedReader和BufferedWriter实现缓冲的原理和BufferedInputStream与BufferedOutputStream相似,区别是BufferedReader和BufferedWriter是针对对字符流的而不是字节流。
BufferedReader最为重要的功能是readline()该方法一次可从输入流中读取一行,并返回改行内容。