首页 > 代码库 > IO流-读取写入缓冲区
IO流-读取写入缓冲区
例如FileReader和FileWriter在读取的时候是读一次或者写一次就请求磁盘,这样使用的时间非常的长,效率比较低,因此引入BufferedReader和BufferedWriter作为读取和写入的缓存区.
1、BufferedReader一次读取8K的字符流到内存中,当程序读取字符时会先到BufferedReader中读取,若没有的话BufferedReader再从磁盘中读取,一次又是8k
2、BufferedWriter作为写入缓存区,要写入文件的字符流写入BufferedWriter(内存中),当刷新或关闭BufferedWriter时,才写入磁盘,减少磁盘的写入次数,提高效率
此二者使用时,首先要有流对象,一下代码举例:
import java.io.*;class Test{ public static void main(String[] args) { try { copy("c:\\log.txt", "d:\\testlog.txt"); } catch(IOException e) { e.printStackTrace(); System.out.println("IO异常"); } } public static void copy(String sourcePath, String destPath)throws IOException { //创建读取和写入缓冲区 BufferedReader bufferedReader = new BufferedReader(new FileReader(sourcePath)); BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(destPath, true)); //用以存放bufferedReader读取出来的一行 String readerCache = null; //当BufferedReader读取一行时是以换行符为判断,但不会读取换行符 while((readerCache = bufferedReader.readLine()) != null) { bufferedWriter.write(readerCache); bufferedWriter.newLine(); //写入一个换行符 bufferedWriter.flush(); //刷新写入文件 } //当缓冲区关闭的时候流资源随之关闭
//注意在关闭资源的时候要注意判断,若没有创建成功,本来就是null,关闭的时候会发生异常,增强代码的健壮性
if(bufferedReader != null) bufferedReader.close();
if(bufferedWriter != null) bufferedWriter.close(); }}
IO流-读取写入缓冲区
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。