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();
    }
}
时间: 2024-06-19 05:42:07

IO流-读取写入缓冲区的相关文章

IO流 , 读取 / 写入

一 , 读取 1.创建文件流 FileStream fs=new FileStream( " 路径 " ,  FileMode.Open ); 2.创建读取器 StreamReader sr=new StreamReader( fs   , Encoding.Default ); 3.执行读取操作 string content= sr.ReadToEnd();   //从流的开始读到末尾 textConternt.Text=content; 4.关闭读取器 sr.Close(); 5.

实现文件上传文件的地址的获取手段之一IO流读取

这是为了我方便之后来查询的代码: 该文件上传是使用form表单提交到后台再使用io流读取,获得文件路径:待修改和完善 package cn.edu.web.servlet; import cn.edu.pojo.Course; import cn.edu.service.CourseListService; import cn.edu.service.CourseListServiceImpl; import com.google.gson.Gson; import org.apache.com

IO流BufferedReader------BufferedWriter 高效缓冲区

package bufferedWriter; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; public class Demo1 { public static void main(String[] args) { wirter(); } /** * 高效缓冲区 */ public static void wirter() { FileWriter fw = null;

Java程序设计---io流读取文件内容并将其逆值输出到控制台

import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.OutputStreamWriter; public class 逆值 {/* *2017-07-01; */    public static void main(String[] args) throws Exception {        // TO

java/IO流FileOutputStream写入文档数据

package ketang82; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; public class WriteBYtrStream { public static void main(String[] args) { // TODO Auto-gen

每天进步一点点-写完睡觉-周一工作(java基本数据类型所占的字节和IO流读取的字符和字节)

Java实现文件写入——IO流(输入输出流详解)

输入输出的重要性:     输入和输出功能是Java对程序处理数据能力的提高,Java以流的形式处理数据.流是一组有序的数据序列,根据操作的类型,分为输入流和输出流. 程序从输入流读取数据,向输出流写入数据.Java是面向对象的程序语言,每一个数据流都是一个对象,它们提供了各种支持“读入”与“写入”操作的流类. Java的输入输出功能来自java.io 包中的InputStream类.OutputStream类.Reader类和Writer类以及继承它们的各种子类. (一)解析文件处理的奥秘 1

黑马程序员——java IO流

java中,IO流需要操作系统资源,使用完毕后要释放资源. IO流根据操作的数据的类型的不同,可以分为字节流和字符流, 字符流是基于字节流的. 字符流的顶层基类是Reader和Writer 字节流的顶层基类是InputStream和OutputStream 流是用来操作数据的,数据的最常见形式是文件,字符流针对的是文本文件,字节流针对的是二进制文件(如图片文件). 1.FileWriter是Writer的一个子类,创建FileWriter对象后,如果源文件不存在则创建新文件:如果源文件存在则覆盖

Java API —— IO流

1.IO流概述 · IO流用来处理设备之间的数据传输 · 上传文件和下载文件 · Java对数据的操作是通过流的方式 · Java用于操作流的对象都在IO包中 2.IO流分类 1)按照数据流向 输入流     读入数据 输出流     写出数据 2) 按照数据类型 字节流: 字节输入流 读取数据 InputStream 字节输出流 写出数据 OutputStream 字符流: 字符输入流 读取数据 Reader 字符输出流 写出数据 Writer 3)什么情况下使用哪种流呢? 如果数据所在的文件