例如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. html个人网页

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. Struts2(二)

    以下内容是基于导入struts2-2.3.32.jar包来讲的 1.关于StrutsPrepareAndExecuteFilter 启动StrutsPrepareAndExecuteFilter时加载 ...

  3. spring重定向与转发

    1.重定向 A,通过ModelAndView以及RedirectView @RequestMapping("/login1.do") public ModelAndView log ...

  4. QSet使用及Qt自定义类型使用QHash等算法

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QSet使用及Qt自定义类型使用QHash等算法     本文地址:http://techie ...

  5. java结合testng,利用XML做数据源的数据驱动示例

    testng的功能很强大,利用@DataProvider可以做数据驱动,数据源文件可以是EXCEL,XML,YAML,甚至可以是TXT文本.在这以XML为例: 备注:@DataProvider的返回值 ...

  6. ZOJ3529_A Game Between Alice and Bob

    题目的意思是给你若干个数字,两个游戏者轮流操作,每次可以将该数变为一个小于当前的一个约数,无法操作的游戏者fail. 和其他的博弈题目大同小异吧. 不同点有两个,逐一分析吧. 一.每次改变一个数只能改 ...

  7. 用PS做PNG格式底色是透明的logo

    有时我们需要底色为透明色的logo图片,但是一般的图片底色都是白色的,覆盖在其它图片上会显示白色. 本文介绍如何用PS CS6制作透明底色的图片. 1.首先我们确定所选图片的大小(即分辨率大小),在资 ...

  8. poj3041 Asteroids(二分图最小顶点覆盖、二分图匹配)

    Description Bessie wants to navigate her spaceship through a dangerous asteroid field in the shape o ...

  9. 【HLSDK系列】服务端实体 edict_t 和 控制类

    我们来了解一下引擎是怎么管理实体的吧!我们这里就说说服务端的实体(edict_t) 服务端用 edict_t 这个结构体来保存一个实体,可以说一个 edict_t 就是一个 服务端实体,下文简称实体. ...

  10. 【刷题】洛谷 P3796 【模板】AC自动机(加强版)

    题目描述 有 \(N\) 个由小写字母组成的模式串以及一个文本串 \(T\) .每个模式串可能会在文本串中出现多次.你需要找出哪些模式串在文本串 \(T\) 中出现的次数最多. 输入输出格式 输入格式 ...