1.BufferedInputStream:字节缓冲输入流(提供默认的缓冲区大小)
构造方法:
public BufferedInputStream(InputStream in):创建字节缓冲区输入流对象,默认缓冲区大小
public BufferedInputStream(InputStream in,int size):创建字节缓冲输入流对象,指定缓冲区大小
读数据可以借助底层的字节输入流
2.代码实现
public class BufferedInputStreamDemo{
public static void main(String[] args) throws Exception{
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("BufferedOutputStreamDemo.java"));
byte[] bytes = new byte[1024];
int len = 0;
while((len=bis.read(bytes))!=-1){
sout(new String(bytes,0,len));
}
}
bis.close();
}
2.字节缓冲输出流
1.BufferedOutputStream:字节缓冲输出流(字节高效流)--->只是提供内部缓冲区
针对文件的操作还需要借助于底层流(基本字节流来操作文件!)
构造方法:
BufferedOutputStream(OutputStream out):创建一个字节缓冲输出流对象,默认缓冲区大小(足够大了) 推荐
BufferedOutputStream(OutputStream out, int size):创建一个字节缓冲输出流对象,指定缓冲区大小
public void flush() throws IOException:刷新缓冲输出流。
2.代码实现:
public class BufferedOutputStreamDemo{
public static void main(String[] args) throws Exception{
BufferedOutputStream bos =
new BufferedOutputStream(new FileOutputStream("bos.txt")) ;
bos.write("hello,BufferedOutputStream,字节高效流".getBytes());
bos.flush() ;
bos.close() ;
}
}
3.读写复制图片文件
public class Test{
public static void main(String[] args) throws Exception{
//创建字节缓冲流输入对象,封装源文件
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("D:\\高圆圆.jpg"));
//封装目的文件
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("mm.jpg")) ;
//一次读取一个字节数组
byte[] bytes = new byte[1024];
int len = 0;
while((len=bis.read(bytes))!=-1){
//写一个字节数组,每次写入实际长度
bos.write(bytes,0,len) ;
//刷新
bos.flush() ;
}
//释放资源
bos.close();
bis.close();
}
}