java自学教程|www.konglongmei.com

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

more +社区更新Forums

more +随机图赏Gallery

疯狂Java讲义(第4版) PDF 电子书 百度云 网盘下载疯狂Java讲义(第4版) PDF 电子书 百度云 网盘下载
价值825元 牛客算法通关课程视频教程 第六期 百度云 网盘下载价值825元 牛客算法通关课程视频教程 第六期 百度云 网盘下载
Spring 5核心原理与30个类手写实战 PDF 电子书 百度云 网盘下载Spring 5核心原理与30个类手写实战 PDF 电子书 百度云 网盘下载
Spring 5核心原理与30个类手写实战+Spring Boot编程思想核心篇pdfSpring 5核心原理与30个类手写实战+Spring Boot编程思想核心篇pdf
Spring Boot编程思想核心篇+Spring 5核心原理与30个类手写实战pdfSpring Boot编程思想核心篇+Spring 5核心原理与30个类手写实战pdf
java电子书]微服务架构设计模式 PDF 电子书 百度云 网盘下载java电子书]微服务架构设计模式 PDF 电子书 百度云 网盘下载

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

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

[复制链接]
却写杂布计 | 显示全部楼层 发表于: 2019-12-3 04:43:53
却写杂布计 发表于: 2019-12-3 04:43:53 | 显示全部楼层 |阅读模式
查看: 47|回复: 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, 2019-12-11 21:28 , Processed in 0.083861 second(s), 27 queries .

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