Java文件与IO(三)之缓冲流
来源:互联网 发布:java.io jar包下载 编辑:程序博客网 时间:2024/06/06 12:25
缓冲流
首先要明确一个概念:
对文件或其它目标频繁的读写操作,效率低,性能差。
使用缓冲流的好处
能够更高效的读写信息,原理是将数据先缓冲起来,然后一起写入或者读取出来。
缓冲流的几个方法:
BufferedInputStream: 为另一个输入流添加一些功能,在创建BufferedInputStream时,会创建一个内部缓冲区数 组,用于缓冲数据。
BufferedOutputStream:通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必针对每次字 节写入调用底层系统 节写入调用底层系统。
BufferedReader:从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
BufferedWriter::将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
针对上述方法写了几个Demo
为方便后续方法调用文件路径我定义了两个静态final路径
private static final String PATHA = "a.txt"; private static final String PATHB = "b.txt";
字符输出缓冲流
public static void charStreamOut() { try { BufferedWriter bw = new BufferedWriter(new FileWriter(PATHB)); bw.write("男人,就应该对自己狠一点!"); bw.flush(); bw.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
字符输入缓冲流
public static void charStreamIn() { try { BufferedReader br = new BufferedReader(new FileReader(PATHB)); // char[] cs = new char[2]; // int len = -1; // StringBuffer stb = new StringBuffer(); // while ((len = br.read(cs)) != -1) { // stb.append(new String(cs, 0, len)); // } //应用缓冲流之后可以用下面的方法读取 String info = br.readLine(); br.close(); System.out.println(info); // System.out.println(stb.toString()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
字节输出缓冲流
public static void byteStreamOut() { OutputStream out; try { out = new FileOutputStream(PATHA); // 字节输出流具备缓冲功能 BufferedOutputStream bos = new BufferedOutputStream(out); bos.write("测试字符串".getBytes()); bos.flush(); bos.close(); out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
字节输入缓冲流
public static void byteStreamIn() { InputStream in; try { in = new FileInputStream(PATHA); // 字节输入流,具备缓冲功能, 此处可以设置缓存大小 BufferedInputStream bis = new BufferedInputStream(in); byte[] bytes = new byte[1024]; int len = -1; StringBuffer sb = new StringBuffer(); while ((len = bis.read(bytes)) != -1) { sb.append(new String(bytes, 0, len)); } bis.close(); in.close(); System.out.println(sb.toString()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
注: 缓冲流在我们平常的使用非常频繁, 所以咱们要仔细得学习缓冲流的相关方法.
以上纯属个人见解, 如有不足之处希望有高人指出, 定感激不尽, 如有喜欢交流学习经验请给我留言谢谢.
原创文章, 转载请注明出处
1 0
- Java文件与IO(三)之缓冲流
- 文件与IO(三)之缓冲流
- java IO流之三 使用缓冲流来读写文件
- java IO流之三 使用缓冲流来读写文件
- java IO流之三 使用缓冲流来读写文件
- java IO (三) 字节流与缓冲
- 【java的 IO流之缓冲流】
- Java IO流之缓冲流
- Linux 文件IO: 缓冲与非缓冲
- JAVA IO之缓冲流源码分析
- Java复习之IO缓冲流
- IO之缓冲流
- IO之缓冲流
- java io 缓冲流
- Java IO流学习总结三:缓冲流-BufferedInputStream、BufferedOutputStream
- Java IO流之【缓冲流和文件流复制文件对比】
- java笔记七:IO流之字节流与字节缓冲流
- java笔记八:IO流之字符流与字符缓冲流
- 深入理解枚举类型之基础用法
- APP开发实战19-TCP和HTTP连接
- java内存模型与线程
- VC中给列表控件CListCtrl添加复选框
- Impala手动安装
- Java文件与IO(三)之缓冲流
- PHPSession-完全PHP5之session篇
- Hibernate 学习教程
- 14. Longest Common Prefix
- mysql 性能优化
- 链路聚合(Link Aggregation)与权重
- Android-android:persistentDrawingCache图片缓存
- 数据结构实验之链表三:链表的逆置
- APP开发实战20-TCP和UDP区别