java基础(jdk1.8)
**
文件IO——缓冲流
**
缓冲流即为了提高效率产生的缓冲层。字节流字符流都有对应的缓冲流。
将字节先写入缓冲区,提高效率
缓冲流使用步骤同转换流,不过是字节缓冲流对应字节流,字符缓冲流对应字符流
字节缓冲流
- BufferedInputStream 缓冲输入流
- BufferedOutputStream 缓冲输出流
父类: InputStream OutputStream
构造方法
BufferedInputStream(InputStream)
BufferedOutputStream(OutputStream)
//使用缓冲流输出,向文件内写入内容
FileOutputStream fo = null;
BufferedOutputStream bo = null;
fo = new FileOutputStream("d://a.txt");
bo = new BufferedOutputStream(fo);
bo.write(97);
bo.close();
//使用缓冲流输入,读取文件内容
FileInputStream fi = null;
BufferedInputStream bi = null;
fi = new FileInputStream("d://a.txt");
bi = new BufferedInputStream(fi);
System.out.println((char) bi.read());
bi.close();
注意:
System.in 就是 BufferedInputStream的对象
也就是说我们平时用的Scanner输入就是使用字节缓冲输入流来读取的
字符缓冲流
- BufferedReader 缓冲输入流
- BufferedWriter 缓冲输出流
父类: Reader Writer
构造方法
BufferedReader(Reader)
BufferedWriter(Writer)
方法
相较于字符流里其他流的区别
写:多了一个
- newLine() //写入一个换行
和操作系统相关联,window的换行为\r\n,linux为\n
读:多了一个
- readLine() //读一行 返回String类型
读取完 返回null,读行不读取换行符
//使用缓冲流输出,向文件内写入内容
FileWriter fw = new FileWriter("d:\\a.txt");
BufferedWriter bw = new BufferedWriter(fw);
bw.write(98);
bw.newLine();
//同样需要使用flush进行刷新
bw.flush();
bw.write(97);
bw.newLine();
bw.flush();
bw.close();
//使用缓冲流输入,读取文件内容
FileReader fr = new FileReader("d:\\a.txt");
BufferedReader br = new BufferedReader(fr);
String str = null;
while ((str = br.readLine()) != null)
{
System.out.println(str);
}
缓冲流复制文件
try {
//将MySQL.pdf从D盘下MySQL下复制到d盘下并更名为MySQL入门.pdf
fi = new FileInputStream("D:\\MySQL\\MySQL.pdf");
bi = new BufferedInputStream(fi);
fo = new FileOutputStream("D:\\MySQL入门.pdf");
bo = new BufferedOutputStream(fo);
int len;
byte [] bytes = new byte[1024*50];
while ((len = bi.read(bytes)) != -1)
{
bo.write(bytes,0,len);
}
} catch (IOException e) {
e.printStackTrace();
}finally {
if (bi != null)
{
try {
bi.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (bo != null){
try {
bo.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
-
缓冲字符流用法差不多
-
文件较大的情况,使用字节缓冲流进行复制的话速度会比较快
有兴趣的关注我的公众号,一起学习交流啊
上一篇 》转换流
下一篇 》序列化和反序列化