1.缓冲流介绍

1)        缓冲流要“套接”在相应的节点上,对读写的数据提供了缓冲的功能,提高读写的效率,同时增加了一些新的方法。

2)        J2SDK提供了四种缓存流,其常用的构造方法为:

BufferedReader(Reader in)
BufferedReader(Reader in, int sz)  //sz为自定义缓存区的大小
BufferedWriter(Writer out)
BufferedWriter(Writer out, int sz)
BufferedInputStream(InputStream in)
BufferedInputStream(InputStream in, int size)
BufferedOutputStream(OutputStream out)
BufferedOutputStream(OutputStream out, int size)

3)        缓冲输入流支持父类的mark和reset方法。

4)        BufferedReader提供了readLine方法用于读取一行字符串(以\r或\n分隔)。

5)        BufferedWriter提供newLine用于写入一个行分隔符。

6)        对于输出的缓冲流,写出的数据会先在内存中缓存,使用flush方法会将内存中的数据立刻写出。

2. 缓冲流例子一

package com.owen.io;import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;/*** 使用BufferedInputStream的缓冲流,处理读取字节流* * @author OwenWilliam 2016-7-19* @since* @version v1.0.0**/
public class TestBufferStream1
{public static void main(String[] args){try{FileInputStream fis = new FileInputStream("E:/workspace/Java/IO/src/com/owen/io/TestFileWriter.java");BufferedInputStream bis = new BufferedInputStream(fis);int c = 0;System.out.println(fis.read());System.out.println(bis.read());// 从第100个字符读起bis.mark(100);for (int i = 0; i <= 10 && (c = bis.read()) != -1; i++){System.out.print((char) c + " ");}System.out.println();// 重置回到第100个字符的位置bis.reset();for (int i = 0; i <= 10 && (c = bis.read()) != -1; i++){System.out.print((char) c + " ");}bis.close();} catch (IOException e){e.printStackTrace();}}}

3.缓冲流例子二

package com.owen.io;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;/*** 使用BufferedWriter和BufferedReader实现写入与写出* * @author OwenWilliam 2016-7-19* @since* @version v1.0.0**/
public class TestBufferStream2
{public static void main(String[] args){try{// 写入文件BufferedWriter bw = new BufferedWriter(new FileWriter("E:/workspace/Java/IO/src/com/owen/io/data2.txt"));// 读取文件BufferedReader br = new BufferedReader(new FileReader("E:/workspace/Java/IO/src/com/owen/io/data2.txt"));String s = null;for (int i = 1; i <= 100; i++){s = String.valueOf(Math.random());bw.write(s);// 写入一行分隔符bw.newLine();}// 缓存中数据 立刻写出bw.flush();// 一行一行写出while ((s = br.readLine()) != null){System.out.println(s);}bw.close();br.close();} catch (IOException e){e.printStackTrace();}}}

Java I/O系统之处理流类型相关推荐

  1. Java高并发系统的限流策略

    限流算法 令牌桶(Token Bucket).漏桶(leaky bucket)和计数器算法是最常用的三种限流的算法. 计数器限流算法也是比较常用的,主要用来限制总并发数,比如数据库连接池大小.线程池大 ...

  2. Java I/O系统学习系列三:I/O流的典型使用方式

    尽管可以通过不同的方式组合IO流类,但我们可能也就只用到其中的几种组合.下面的例子可以作为典型的IO用法的基本参考.在这些示例中,异常处理都被简化为将异常传递给控制台,但是这只有在小型示例和工具中才适 ...

  3. Java IO 节点流与处理流类型

    处理流类型: 1.处理流之首先缓冲流: 解释: 例子:TestBufferStream1.java package com.zhj.www;import java.io.BufferedInputSt ...

  4. JAVA mac系统io文件流_Java IO流基础1--IO的分类体系与文件流

    什么是IO流 Java中的IO 了解什么是IO流之前,要先知道什么是IO.IO,就是in和out(即输入和输出),指应用程序和外部设备之间的数据传递,常见的外部设备包括文件.管道.网络连接等. 流的概 ...

  5. Java自学习day15-抽象类练习-编写工资系统,实现不同类型员工(多态)的按月发放工资

    编写工资系统,实现不同类型员工(多态)的按月发放工资.如果当月出现某个 Employee对象的生日,则将该雇员的工资增加100元. 实验说明: (1)定义一个Employee类,该类包含: priva ...

  6. java中的常用的文件流_Java 基础(四)| IO 流之使用文件流的正确姿势

    image.png 一.什么是 IO 流? 想象一个场景:我们在电脑上编辑文件,可以保存到硬盘上,也可以拷贝到 U 盘中.那这个看似简单的过程,背后其实是数据的传输. 数据的传输,也就是数据的流动.既 ...

  7. java实验系统常用类,Java的常用系统类

    Java的常用系统类Tag内容描述: 1.Java语言与JBuilder应用初步 第六章 常用的Java系统类,本章要点,字符串类 数值(Number)类及其子类 数组类 集合类 Object类,字符 ...

  8. Java I/O系统学习系列二:输入和输出

    编程语言的I/O类库中常使用流这个抽象概念,它代表任何有能力产出数据的数据源对象或者是有能力接收数据的接收端对象."流"屏蔽了实际的I/O设备中处理数据的细节. 在这个系列的第一篇 ...

  9. Java I/O系统学习系列一:File和RandomAccessFile

    I/O系统即输入/输出系统,对于一门程序语言来说,创建一个好的输入/输出系统并非易事.因为不仅存在各种I/O源端和想要与之通信的接收端(文件.控制台.网络链接等),而且还需要支持多种不同方式的通信(顺 ...

  10. java byte char io流_吃透Java IO:字节流、字符流、缓冲流

    前言有人曾问fastjson的作者(阿里技术专家高铁):"你开发fastjson,没得到什么好处,反而挨了骂背了锅,这种事情你为什么要做呢?" 高铁答道:"因为热爱本身, ...

最新文章

  1. 十八、多生产者--多消费者问题
  2. HTML5中的websocket图片直播
  3. 计算机知识必备,小结||计算机基础知识点十(必备)
  4. 002 python准备做题的一些准备
  5. 一些常用的基本的liunx命令:
  6. 无线端不响应键盘事件(keydown,keypress,keyup)
  7. HDU1573-模线性方程
  8. C#23种设计模式WebCast讲解笔记大全(25讲)
  9. Hibernate框架 简述
  10. (转)SpringMVC学习(十一)——SpringMVC实现Resultful服务
  11. java表示学生信息的类Student,并输出相关信息
  12. bzoj3207花神的嘲讽计划Ⅰ
  13. 【语音编码】基于matlab ADPCM编解码【含Matlab源码 553期】
  14. win7计算机桌面位置,win7系统更改桌面位置的操作方法
  15. 备份路由器配置文件到服务器,手把手教您如何进行备份Cisco路由器配置
  16. 用图818“女版乔布斯”霍姆斯定罪前后的轨迹
  17. 新学期、新目标、迎接新的自己
  18. PotPlayer视频播放工具
  19. Go 每日一库之 email
  20. BMA250 BMA253 ---国产的完美代替者 SC7A20 7A21-抬手亮屏传感器 技术指导代码分享欢迎索取

热门文章

  1. xshell访问内网虚拟机
  2. 什么是延展性(Malleability,可鍛性)
  3. strstr 可以用来查找子字符串的位置
  4. mavros常用消息类型表
  5. 华为OSPF多区域+路由重发布/路由引入
  6. web安全day18:kali下的两个实验彻底理解中间人攻击
  7. 游戏开发筑基之特殊输入函数的妙用(C语言)
  8. MPLS virtual private network PE-CE之间的路由协议(静态、RIP、IS-IS)
  9. Python处理多种编码报错的处理
  10. 某一天,忽然发现自己坚持不下去了。(无关计算机,只是一些自己的困惑和感想)