• 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(); } }
  • 相关阅读:
    了解Javascript的函数调用和'this'
    js 实现简单收起功能
    页面跳转,form方式提交参数或数据
    查看图片大图效果
    2018phpstom 破解码
    JDK安装
    java 语法释义
    java的特性
    CSS(属性)
    CSS(层叠样式表概述)
  • 原文地址:https://www.cnblogs.com/fantasy01/p/3997515.html
Copyright © 2020-2023  润新知