博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
缓冲流
阅读量:6945 次
发布时间:2019-06-27

本文共 3580 字,大约阅读时间需要 11 分钟。

缓冲流:

   读取数据大量的文件时 ,读取的速度慢, java提供了一套缓冲流,提高IO流的效率。分为字节缓冲流和字符缓冲流。

★字节缓冲流:

    缓冲输出流:BufferedOutputStream  缓冲输入流:BufferesInputStream

BufferedOutputStream:

 

/* * 字节输出流的缓冲流  作用  提高效率 * 继承OutputStream * 构造方法 new BufferedOutputStream(OutputStream out); *  * */public class BufferedOutputStreamDemo { public static void main(String[] args) throws Exception { // 1创建字节输出流 绑定文件 //FileOutputStream fos =new FileOutputStream("c:\\buffer"); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("c:\\buffer")); bos.write(65);//自动查码表 utf-8 0 1 //输出字符串 byte[] b= "hello world".getBytes(); bos.write(b); //截取 bos.write(b, 3, 2); bos.close(); } }

 

BufferesInputStream:

/* *   字节输入流的缓冲流   *   继承InputStream *   构造方法 *  * */public class BufferedInputStreamDemo { public static void main(String[] args) throws Exception { //1 创建字节输入流的缓冲流对象 BufferedInputStream b = new BufferedInputStream(new FileInputStream("c:\\buffer")); byte[] bs = new byte[1024]; b.close(); int len = 0; while((len=b.read(bs))!=-1){ System.out.print(new String(bs,0,len)); } } }

★字符缓冲流,用于文本数据的高速写入

  缓冲输入流BufferedReader  缓冲输出流BufferedWrite

BufferedReader

public class BufferedReaderDemo {    public static void main(String[] args) throws Exception { //创建字符输入缓冲流对象 BufferedReader bu =new BufferedReader(new FileReader("c:\\bu.txt")); String len = null; while((len=bu.readLine())!=null){ System.out.println(len); } bu.close(); } }

BufferedWrite

/*字符输出缓冲流 * write(); *  构造方法 BufferedWriter(Writer w); *  new line() 写换行    \r\n *            linux   \n * */public class BufferedWriterDemo { public static void main(String[] args) throws IOException { //创建字符输出流 封装文件 FileWriter fWriter = new FileWriter("c://bu.txt"); BufferedWriter bufferedWriter = new BufferedWriter(fWriter); bufferedWriter.write("您好"); bufferedWriter.newLine();//换行 bufferedWriter.write(100); bufferedWriter.flush(); bufferedWriter.write("床前明月光"); bufferedWriter.close(); } }

文件缓冲流的复制方式:

/* *  文件的复制方式 *  1 字节流读写单个字节 *  2 字节流读写字节数组   2405ms *  3 字节流缓冲区 读写单个字节   4855ms *  4 字节流缓冲区读写字节数组  697ms * */public class Copy { public static void main(String[] args) throws Exception { long timeStart = System.currentTimeMillis(); copy4(new File("c:\\liu.mp4"), new File("d:\\liu.mp4")); long end = System.currentTimeMillis(); System.out.println(end-timeStart); } // 4 字节流缓冲区读写字节数组 public static void copy4(File src,File desc) throws Exception{ BufferedInputStream bu = new BufferedInputStream(new FileInputStream(src)); BufferedOutputStream ou = new BufferedOutputStream(new FileOutputStream(desc)); int len = 0; byte[] b=new byte[1024*10]; while((len=bu.read(b))!=-1){ ou.write(b,0,len); } ou.close(); bu.close(); } //3 字节流缓冲区 读写单个字节 public static void copy3(File src,File desc) throws Exception{ BufferedInputStream bu = new BufferedInputStream(new FileInputStream(src)); BufferedOutputStream ou = new BufferedOutputStream(new FileOutputStream(desc)); int len = 0; while((len=bu.read())!=-1){ ou.write(len); } ou.close(); bu.close(); } //2 字节流读写字节数组 public static void copy2(File src,File desc) throws Exception{ FileInputStream fis = new FileInputStream(src); FileOutputStream fos = new FileOutputStream(desc); int len = 0; byte[] b =new byte[1024*10]; while((len=fis.read(b))!=-1){ fos.write(b,0,len); } fos.close(); fis.close(); } //1 字节流读写单个字节 public static void copy1(File src,File desc) throws Exception{ FileInputStream fis = new FileInputStream(src); FileOutputStream fos = new FileOutputStream(desc); int len = 0; while((len=fis.read())!=-1){ fos.write(len); } fos.close(); fis.close(); } }

转载于:https://www.cnblogs.com/cuichaobo/p/10681326.html

你可能感兴趣的文章
[LeetCode] Candy Crush 糖果消消乐
查看>>
04.变量和常量
查看>>
图像采集调试总结
查看>>
iOS适配HTTPS,创建一个自签名的SSL证书(x509)具体步骤
查看>>
1111111
查看>>
XStream将java对象转换为xml时,对象字段中的下划线“_”,转换后变成了两个的解决办法...
查看>>
弱符号与强符号,弱引用与强引用
查看>>
009PHP文件处理——文件处理 file_get_contents file_put_contents fgetc fgets fgetss
查看>>
spring boot项目在外部tomcat环境下部署
查看>>
基于C#在Mongodb的Skip-Limit和Where-Limit的分页对比 并且含mongodb帮助类的源码
查看>>
060——VUE中vue-router之路由嵌套在文章系统中的使用方法:
查看>>
tenda某路由器信息泄露查找
查看>>
uva 10710 - Chinese Shuffle(完美洗牌)
查看>>
怎么清除火狐浏览器的cookie?
查看>>
连麦介绍
查看>>
MQTT 客户端源码分析
查看>>
IT思想类智力题
查看>>
php设计模式-单例模式
查看>>
php扩展php-redis安装与使用
查看>>
python一天一题(2)
查看>>