1.缓冲流:一共有四种,第一个是BufferedInputStream字节缓冲输入流,第二种就是BufferedOutputStream字节缓冲输出流,第三种是BufferedReader字符缓冲输入流,第四种是BufferedWriter字符缓冲输出流。可以高效的读取和写出数据。
接下来,我会用缓冲流去拷贝,以供大家理解和使用
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("C:\\Users\\86188\\IdeaProjects\\java\\Game\\c"));
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("C:\\Users\\86188\\IdeaProjects\\java\\Game\\d")) ;
int b;
while ((b=bis.read())!=-1){
bos.write(b);
}
bis.close();
bos.close();
}
底层有一个长度为8192个字节。
字节缓冲流提高效率的原理,从数据源,也就是硬盘中读取数据的还是基本流,接着,会将读取的数据放在缓冲输入流的缓冲区中(大小为8192个字节),输出流的大体流程也差不多。
字符缓冲流:BufferedReader字符缓冲输入流与BuferedWriter字符缓冲输出流。
构造方法与使用方法与字节缓冲流差不多,但是字符缓冲流有两个特别好用的方法。
字符缓冲输入流有一个readLine方法,作用是读取一行数据,如果没有数据了,就会返回null。
字符缓冲输出流也有一个方法newLine方法,作用是跨平台的换行。在之前,我们说过,每一个操作系统在使用输出流达到换行效果时,输出的字符是不一样的,但如果使用了newLine方法就可以实现跨操作系统的换行。
我写了一个代码,请看:
BufferedReader br=new BufferedReader(new FileReader("C:\\Users\\86188\\IdeaProjects\\java\\Game\\c"));
BufferedWriter bw=new BufferedWriter(new FileWriter("C:\\Users\\86188\\IdeaProjects\\java\\Game\\d"));
String line=br.readLine();
String lin=br.readLine();
System.out.println(line);
System.out.println(lin);
br.close();
}
}
还可以使用一个循环来读取文件里的所有数据,如下: BufferedReader br=new
BufferedReader(new FileReader("C:\\Users\\86188\\IdeaProjects\\java\\Game\\c"));
BufferedWriter bw=new BufferedWriter(new FileWriter("C:\\Users\\86188\\IdeaProjects\\java\\Game\\d"));
String line;
while ((line=br.readLine())!=null){
System.out.println(line);
}
br.close();
}
}