缓冲流也称为高效流,或者高级流,字节流可以称为原始流。缓冲流自带缓冲区,可以提高原始字节流和字符流读写数据的性能。缓冲流的原理就是,创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区进行读写,减少系统的IO次数,提高读写效率。
缓冲流可以分为字节缓冲流和字符缓冲流
字节缓冲流
字符缓冲流
public BufferedInputStream(InputStream in):创建一个新的缓冲输入流,可以把低级的字节输入流包装成一个高级的缓冲字节输入流管道,从而提高字节输入流读数据的性能
- File file=new File("D:\\aaa\\helloworld.txt");
- FileInputStream fis=new FileInputStream(file);
- BufferedInputStream bis=new BufferedInputStream(fis);
public BufferedOutputStream(OutputStream out):创建一个新的缓冲输出流,可以把低级的字节输出流包装成一个高级的缓冲字节输出流管道,从而提高字节输出流写数据的性能
- File file=new File("D:\\aaa\\helloworld.txt");
- FileOutputStream fos=new FileOutputStream(file);
- BufferedOutputStream bos=new BufferedIOutputStream(fos);
- File file=new File("D:\\aaa\\helloworld.txt");
- FileInputStream fis=new FileInputStream(file);
- FileOutputStream fos=new FileOutputStream(file);
- BufferedInputStream bis=new BufferedInputStream(fis);
- BufferedOutputStream bos=new BufferedOutputStream(fos);
- byte[] b=new byte[1024];
- int len;
- while((len=bis.read(b))!=-1) {
- bos.write(b,0,len);
- }
- System.out.println("复制完成了");
public BufferedReader(Reader r):创建一个新的缓冲输入流,可以把低级的字符输入流包装成一个高级的缓冲字符输入流管道,从而提高字符输入流读数据的性能
- File file=new File("D:\\aaa\\helloworld.txt");
- FileReader fr=new FileReader(file);
- BufferedReader br=new BufferedReader(fr);
public BufferedWriter(Writer w):创建一个新的缓冲输出流,可以把低级的字符输出流包装成一个高级的缓冲字符输出流管道,从而提高字符输出流写数据的性能
- File file=new File("D:\\aaa\\helloworld.txt");
- FileWriter fw=new FileWriter(file);
- BufferedWriter bw=new BufferedWriter(fw);
public String readLine():读取一行数据返回,如果读取没有完毕,无行可读返回null
- File file=new File("D:\\aaa\\helloworld.txt");
- BufferedReader br=new BufferedReader(fr);
- String line;
- while((line=br.readLine())!=null) {
- System.out.println(line);
- }
public void newLine():换行操作
- File file=new File("D:\\aaa\\helloworld.txt");
- FileWriter fw=new FileWriter(file);
- BufferedWriter bw=new BufferedWriter(fw);
- bw.write("我是中国人");
- bw.newLine();
- bw.write("中国人不骗中国人");