例如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. C语言的问卷调查

    1.你对自己的未来有什么规划?做了哪些准备? 未来想当一个网络工程师,为了这个目标我正在努力学习网络.网页及相关的知识. 2.你认为什么是学习?学习有什么用?现在学习动力如何?为什么? 学习就是不断尝 ...

  2. lintcode-442-实现 Trie

    442-实现 Trie 实现一个 Trie,包含 insert, search, 和 startsWith 这三个方法. 注意事项 你可以假设所有的输入都是小写字母a-z. 样例 insert(&qu ...

  3. MySQL的并发访问控制(锁)

    前言:任何的数据集只要支持并发访问模型就必须基于锁机制进行访问控制 锁种类 读锁:共享锁,允许给其他人读,不允许他人写写锁:独占锁, 不允许其他人读和写 锁类型 显示锁:用户手动请求读锁或写锁隐式锁: ...

  4. 敏捷冲刺DAY8

    一. 每日会议 1. 照片 2. 昨日完成工作 第一次阶段测试. 3. 今日完成工作 对前七次敏捷冲刺的工作进行完善. 4. 工作中遇到的困难 浏览器兼容性问题.页面响应性能问题.内存溢出问题-- 二 ...

  5. HDU 2162 Add ‘em

    http://acm.hdu.edu.cn/showproblem.php?pid=2162 Problem Description Write a program to determine the ...

  6. IIS部署时未能加载程序集"System.Web.Http.WebHost"解决方法

    问题如下 服务器没有安装MVC,下载以下dll覆盖到bin目录下,即可免安装运行程序. 下载地址:https://pan.baidu.com/s/1mhCo5mS

  7. 【EF】EF框架 Code First Fluent API

    在Code First方法中,还可以通过Fluent API的方式来处理实体与数据表之间的映射关系. 要使用Fluent API必须在构造自定义的DbContext时,重写OnModelCreatin ...

  8. JSON字符串转换成对象时候 需要有默认构造器 因为这是通过反射创建的 反射是先通过默认构造器创建对象的

    JSON字符串转换成对象时候 需要有默认构造器 因为这是通过反射创建的 反射是先通过默认构造器创建对象的

  9. presence_of_element_located与visibility_of_element_located区别

    selenium 问题:加了显性等待后,操作元素依然出错   背景: 用WebDriverWait时,一开始用的是presence_of_element_located,我对它的想法就是他就是用来等待 ...

  10. Ubuntu 18.04开发环境部署流程

    部署流程 安装系统 安装Eclipse和jre 配置系统 安装辅助工具 安装系统 用安装盘安装即可. 一般boot 1G,swap按内存大小,home 20G,根剩余. 安装Eclipse和jre 解 ...