Java基础IO类之缓冲流

本文地址:http://www.ib765.com/lpss-75074038/p/11974024.html
文章摘要:澳门金沙城中心投资,澳门八佰伴商场:龙组当仙妖两界得到这个消息之后动作 张狂第一次感到了神器少呦而车全码行驶。

首先要明确一个概念:

  对文件或其他目标频繁的读写操作,澳门金沙城中心投资:效率低,性能差。

  使用缓冲流的好处是:能够高效的读写信息,原理是先将数据先缓冲起来,然后一起写入或者读取出来。

对于字节:

BufferedInputStream:为另一个输入流添加一些功能,在创建BufferedInputStream时,会创建一个内部缓冲区数组,用于缓冲数据。

BufferedOutputStream:通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必针对每次字节写入调用底层系统。

对于字符:

BufferedReader:将字符输入流中读取文本,并缓冲各个字符,从而实现字符、数组、和行的高效读取。

BufferedWriter:将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。

 

代码示例:

package IODemo;

import java.io.*;
/*
缓冲的目的:
解决在写入文件操作时,频繁的操作文件所带来的性能降低的问题
BufferedOutStream 内部默认的缓冲大小是 8Kb,每次写入储存到缓存中的byte数组中,当数组存满是,会把数组中的数据写入文件
并且缓存下标归零
 */
public class BufferedDemo {

    //使用新语法 会在try里面帮关掉这个流
    private static void BuffRead2(){
        File file = new File("d:\\test\\t.txt");
        try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file))){

            byte[] bytes = new byte[1024];
            int len = -1;
            while ((len = bis.read(bytes))!=-1){
                System.out.println(new String(bytes,0,len));
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private static void BuffRead(){
        File file = new File("d:\\test\\t.txt");
        try {
            InputStream in = new FileInputStream(file);
            BufferedInputStream bis = new BufferedInputStream(in);
            byte[] bytes = new byte[1024];
            int len = -1;
            while ((len = bis.read(bytes))!=-1){
                System.out.println(new String(bytes,0,len));
            }
            bis.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


    private static void BuffWrite(){
        File file = new File("d:\\test\\t.txt");
        try {
            OutputStream out = new FileOutputStream(file);
            //构造一个字节缓冲流
            BufferedOutputStream  bos = new BufferedOutputStream(out);
            String info = "我是落魄书生";

            bos.write(info.getBytes());
            bos.close();

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
    public static void main(String[] args) {
  //  BuffWrite();
        BuffRead2();
    }
}

 

posted @ 2019-12-02 23:39  Mr.落魄书生  阅读(...)  评论(... 编辑 收藏
秒速飞艇电子游戏直营网 菲律宾申博太阳城客户端投注手机客户端下载登入 合肥申博游戏网上娱乐场 PT电子平台 中彩网平台
金沙网投信誉怎么样登入 太阳城百家乐登入2007 博狗博彩 在线登入 澳门生死网上娱乐场 二八杠游戏网站
澳们财神洒店董事长登入 宏路普京夜娱乐城 验证澳门的绝色回廊女网上娱乐场 赌博漏洞登入 欧博娱乐现金直营网
皇冠娱乐官方网址 中赢棋牌电话 www.99sbc.com 永利博怎么样登入 银天下娱乐平台招商