例如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流-读取写入缓冲区的更多相关文章

  1. IO流----读取文件,复制文件,追加/插入文件

    文件结构 读取文件 第一种方式 public class Test { public static void main(String[] args) throws IOException { // 最 ...

  2. java IO流读取图片供前台显示

    最近项目中需要用到IO流来读取图片以提供前台页面展示,由于以前一直是用url路径的方式进行图片展示,一听说要项目要用IO流读取图片感觉好复杂一样,但任务下达下来了,做为程序员只有选择去执行喽,于是找了 ...

  3. Java IO流的写入和写出操作 FileInputStream和FileOutputStream

    今天学习了Java的IO流,关于文件的读入和写出,主要是FileInputStream和FileOutputStream来实现,这两个流是字节流.还有字符流(FileReader和FileWriter ...

  4. IO流读取和写入文件

    package com.xmlmysql.demo.config; import java.io.BufferedReader; import java.io.BufferedWriter; impo ...

  5. IO字 节流/字符流 读取/写入文件

    流是指一连串流动的数据信号,以先进,先出的方式发送和接收的通道 流的分类根据方向分为输入流所有接收,获得,读取的操作都是属于输入流所有的输入流名字都带有input或Reader 输出流所有发送,写的操 ...

  6. io流读取文件

    package test; import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import ...

  7. java io流读取 和commons.io的使用

    前提:记事本里面一共有605个字 1.使用BufferedReader和FileReader来读取txt里面的内容,用时相对短.读完记得关闭流br.close() 2.指定UTF-8输出格式,使用Fi ...

  8. java使用io流读取windows文件乱码问题

    出现原因: 在IDEA中,使用 FileReader 读取项目中的文本文件.由于IDEA的设置,都是默认的 UTF-8 编码,所以没有任何 问题. 但是,当读取Windows系统中创建的文本文件时,由 ...

  9. java中的IO流读取文件

    1 InputStream类和OutputStream类 InputStream.read()方法从文件中读取一个字节(0-255),然后将此字节转换成对应的整数返回.假设一个文件的编码为utf-8编 ...

随机推荐

  1. lintcode-421-简化路径

    421-简化路径 给定一个文档(Unix-style)的完全路径,请进行路径简化. 样例 "/home/", => "/home" "/a/./ ...

  2. 02_Java基础_第2天(变量、运算符)_讲义

    今日内容介绍 1.变量 2.运算符 01变量概述 * A: 什么是变量? * a: 变量是一个内存中的小盒子(小容器),容器是什么?生活中也有很多容器, * 例如水杯是容器,用来装载水:你家里的大衣柜 ...

  3. request内置对象在JSP

  4. 第五周PSP &进度条

    团队项目PSP 一:表格     C类型 C内容 S开始时间 E结束时间 I时间间隔 T净时间(mins) 预计花费时间(mins) 讨论 讨论用户界面 9:27 10:42 18 57 60 分析与 ...

  5. java分页算法

    int totalPageNum = (totalRecord  +  pageSize  - 1) / pageSize;

  6. node.js入门(一)

    NodeJS是一个使用了Google高性能V8引擎的服务器端JavaScript实现.它提供了一个(几乎)完全非阻塞I/O栈,与JavaScript提供的闭包和匿名函数相结合,使之成为编写高吞吐 量网 ...

  7. Linux下修改环境变量PATH

    1.什么是环境变量(PATH) 在Linux中,在执行命令时,系统会按照PATH的设置,去每个PATH定义的路径下搜索执行文件,先搜索到的文件先执行. 我们知道查阅文件属性的指令ls 完整文件名为:/ ...

  8. Vue.js 判断对象属性是否存,不存在添加

    Vue.set是可以对对象添加属性的,这里item对象添加一个checked属性 //if(typeof item.checked=='undefined'){if(!this.item.checke ...

  9. SQL中INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN区别

    sql中的连接查询有inner join(内连接).left join(左连接).right join(右连接).full join(全连接)四种方式,它们之间其实并没有太大区别,仅仅是查询出来的结果 ...

  10. get 与 next()