字节缓冲区
文件复制数组做为缓冲区,目的提高流对象的读写效率.
JDK提供了字节流的缓冲流对象,目的也是为了高效,字节输出流的缓冲流,字节输入流的缓冲流
BufferedOutputStream字节输出流的缓冲区
提高字节输出流对象的效率
- BufferedOutputStream继承OutputStream
。缓冲流本身也是字节的输出流
。write写入字节的方法,无需在学习的 - 构造方法
。BufferedOutputStream(OutputStream out)
。new 对象的时候,构造方法中传递任意的字节输出流,传递哪个流,高效哪个流
/*
*字节流的缓冲区流,提高效率
*/
/*
*字节输出流的缓冲流使用
*new.对象,传递字节输出流
*/
public static void main(String[] args) throws IOException {
bufferedWriter();
}
public static void bufferedWriter() throws IOException{
//创建字节输出流
FileOutputStream fos = new FileOutputStream( "buffer. txt" );
//创建字节输出流的缓冲流,构造方法里面,传递字节输出流
BufferedoutputStream bos= new BufferedoutputStream(fos);
//写入数据,单个字节
bos . write(100);
//字节数组
byte[] bytes = " abcdefg".getBytes();
bos . write(bytes);
//数组的一部分
bos . write(bytes, 2,2);
//释放资源,释放缓冲流即可
bos. close();
}
BufferedInputStream字节输入流的缓冲区
提高字节输入流对象的效率
- BufferedInputStream继承InputStream
。缓冲流本身也是字节的输入流
。read写入字节的方法,无需在学习的 - 构造方法
。BufferedInputStream(InputStream in)
。new 对象的时候,构造方法中传递任意的字节输入流,传递哪个流,高效哪个流
/*字节输入流的缓冲流
*读取文件
*new.对象,传递字节输入流
*/
public static void main(String[] args) throws IOException {
bufferedWriter();
}
public static void bufferedReader() throws I0Exception {
//创建字节输入流,构造方法,绑定数据源
FileInputStream fis = new FileInputStream("buffer . txt");
//创建字节输入流的缓冲流,构造方法里面,传递字节输入流.
BufferedInputStream bis = new BufferedInputStream(fis);
//变量.保存read方法的返回值
int len = 0;
//数组缓冲
byte[ ] bytes=new byte[1024];
while( (len = bis.read()) !=-1) {
System. out. println(new String(bytes,0,len));
}
bis. close();
}
public static void main(String[] args) throws IOException {
copy_4();
}
public static void copy_4() throws IOException{
//字节输入流,绑定数据源
//字节输出流,绑定数据目的
//字节输入流的缓冲流
BufferedInputStream bis =
new BufferedInputStream(new FileInputStream( "d: /springboot_initializr. jar"));
//字节输出流的缓冲流
Buffered0utputStream bos =
new BufferedoutputStream(new File0utputStream( "e:/springboot_initializr . jar"));
int len = 0;
//数组缓冲
byte[ ] bytes=new byte[1024];
while( (len = bis.read(bytes)) !=-1) {
bos.write(bytes,0,len));
}
bis. close();
bos .close();
}