缓冲区出现原因:

Java对IO的读写都是经过中间途经——JVM虚拟机进行管理的,JVM调用OS操作系统继续完成IO操作。如此一来,整个过程耗费了不小的资源,为了尽量减少这样重复的周期性操作,出现了缓冲区,可以有效的提高系统的性能

一、IO缓冲区类

BufferedInputStream ===> 字节输入缓冲流

BufferedOutputStream ===> 字节输出缓冲流

BufferedReader ===> 字符输入缓冲流

BufferedWriter ===> 字符输出缓冲流

二、BufferedInputStream

1.构造方法

BufferedOutputStream(OutputStream out)

BufferedOutputStream(OutputStream out, int size)

2.常用方法

void flush() ===> 刷新缓冲输出流

void write(byte[] b, int off, int len) ===> 从指定的字节数组写入 len个字节,从偏移 off开始到缓冲的输出流

void write(int b) ===> 将指定的字节写入缓冲的输出流

3.使用方法

import java.io.*;

public class MyBuffer {
public static void main(String[] args) throws IOException {
BufferedOutputStream file = new BufferedOutputStream(new FileOutputStream("F:\\data.txt"));
file.write("这是我写入的数据".getBytes());
file.flush();
}
}

二、BufferedInputStream

1.构造方法

BufferedInputStream(InputStream in)

BufferedInputStream(InputStream in, int size)

2.常用方法

int available() ===> 返回从该输入流中可以读取(或跳过)的字节数的估计值

void close() ===> 关闭此输入流并释放与流相关联的任何系统资源。

void mark(int readlimit)

boolean marksupported() ===> 测试这个输入流是否支持 mark和reset方法

int read()

void reset()

long skip(long n)

3.使用方法

import java.io.*;

public class MyBuffer {
public static void main(String[] args) throws IOException { BufferedInputStream file = new BufferedInputStream(new FileInputStream("F:\\data.txt"));
int nums = file.available();
byte[] bytes = new byte[nums];
file.read(bytes);
file.close();
System.out.printf(new String(bytes));
}
}

三、BufferedWriter

1.构造方法

BufferedWriter(Writer out)

BufferedWriter(Writer out, int sz)

2.常用方法

void close() ===> 关闭流,先刷新

void flush() ===> 刷新流

void newLine() ===> 写一行行分隔符

void write(char[]cbuf,int off,int len)写入字符数组的一部分

void write(intc)写一个字符

void write(Strings,int off,int len)写一个字符串的一部分

3.使用方法

import java.io.*;

public class MyBuffer {
public static void main(String[] args) throws IOException { BufferedWriter file = new BufferedWriter(new FileWriter("F:\\info.txt"));
file.write("欢迎来到英雄联盟");
file.flush();
file.close();
}
}

四、BufferedReader

1.构造方法

BufferedReader(Reader in)

BufferedReader(Reader in, int sz)

2.常用方法

void close() ===> 关闭流并释放与之相关联的任何系统资源

Stream<string> lines() ===> 返回一个Stream,其元素是从这个BufferedReader读取的行

void mark(int readAheadLimit) ===> 标记流中的当前位置

boolean marksupported() ===> 告诉这个流是否支持mark()操作

int read() ===> 读一个字符

int read(char[]cbuf,int off,int len) ===> 将字符读入数组的一部分

string readLine() ===> 读一行文字

boolean ready() ===> 告诉这个流是否准备好被读取

void reset() ===> 将流重置为最近的标记

long skip(long n) ===> 跳过字符

3.使用方法

import java.io.*;

public class MyBuffer {
public static void main(String[] args) throws IOException { BufferedReader file = new BufferedReader(new FileReader("F:\\info.txt"));
String info;
while ((info = file.readLine()) != null){
System.out.println(info);
}
}
}

最新文章

  1. HDU5456 Matches Puzzle Game(DP)
  2. UWP/Win10新特性系列—App Service
  3. Linux下提取IP至文件
  4. 关于双击事件.MouseEvent.DOUBLE_CLICK
  5. android的ScaleGestureDetector缩放类详解
  6. Android 通过http访问服务器
  7. UITableViewCell 高度自适应
  8. 《python源代码剖析》笔记 python中的Dict对象
  9. php之类,对象(二)继承性,static静态的,const常量
  10. Java线程Dump分析工具--jstack(转)
  11. Linux修改SSH端口和禁止Root远程登陆
  12. Oracle Apps DBA 常用命令
  13. 6 Tools To Jump Start Your Video Content Marketing
  14. Anaconda介绍、安装及使用教程
  15. 开发第一个flutter程序 hello world
  16. java里面获取map的key和value的方法
  17. NOIP模拟赛-2018.11.7
  18. 使用GSON和泛型解析约定格式的JSON串(转)
  19. 解决在nginx+php环境下$_SERVER[&#39;PHP_SELF&#39;]获取不到值的问题
  20. Linux故障-bash-4.1$

热门文章

  1. Python 【绘制图及turtle库的使用】
  2. vue中moment.js的使用
  3. 小白学 Python 数据分析(17):Matplotlib(二)基础操作
  4. this.baseInfoList = [...this.baseInfoList] 所有和数组有关的操作,最后一定都展开一次,否则就没有双向绑定!!
  5. 使用 C# 和 OpenGL (SharpGL) 实现的一个简易画图版
  6. python获取群成员信息
  7. flex弹性盒子实现微博页面
  8. Django-jwt token生成源码分析
  9. 牛客练习赛60 A—F题解(缺E题)
  10. 面试刷题17:线程两次start()会发生什么?