java自学教程|www.konglongmei.com

作者: 却写杂布计
查看: 77|回复: 0

more +社区更新Forums

more +随机图赏Gallery

[技术知识] Java基础IO类之缓冲流

[技术知识] Java基础IO类之缓冲流

[复制链接]
却写杂布计 | 显示全部楼层 发表于: 2019-12-3 04:43:53
却写杂布计 发表于: 2019-12-3 04:43:53 | 显示全部楼层 |阅读模式
查看: 77|回复: 0

你还没有注册,无法下载本站所有资源,请立即注册!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
首先要明确一个概念:
  对文件或其他目标频繁的读写操作,效率低,性能差。
  使用缓冲流的好处是:能够高效的读写信息,原理是先将数据先缓冲起来,然后一起写入或者读取出来。
对于字节:
BufferedInputStream:为另一个输入流添加一些功能,在创建BufferedInputStream时,会创建一个内部缓冲区数组,用于缓冲数据。
BufferedOutputStream:通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必针对每次字节写入调用底层系统。
对于字符:
BufferedReader:将字符输入流中读取文本,并缓冲各个字符,从而实现字符、数组、和行的高效读取。
BufferedWriter:将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。

代码示例:
  1. 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();    }}
复制代码


鲁班 Java架构师VIP课程一期共89G视频教程 luban it教程下载:http://www.77cxw.com/download/78
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|网站地图|java自学教程|www.konglongmei.com

GMT+8, 2020-7-16 01:16 , Processed in 0.099225 second(s), 27 queries .

快速回复 返回顶部 返回列表