Java第三十二天,IO操作(续集),读写缓冲区的使用
缓冲区出现原因:
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);
}
}
}
最新文章
- HDU5456 Matches Puzzle Game(DP)
- UWP/Win10新特性系列—App Service
- Linux下提取IP至文件
- 关于双击事件.MouseEvent.DOUBLE_CLICK
- android的ScaleGestureDetector缩放类详解
- Android 通过http访问服务器
- UITableViewCell 高度自适应
- 《python源代码剖析》笔记 python中的Dict对象
- php之类,对象(二)继承性,static静态的,const常量
- Java线程Dump分析工具--jstack(转)
- Linux修改SSH端口和禁止Root远程登陆
- Oracle Apps DBA 常用命令
- 6 Tools To Jump Start Your Video Content Marketing
- Anaconda介绍、安装及使用教程
- 开发第一个flutter程序 hello world
- java里面获取map的key和value的方法
- NOIP模拟赛-2018.11.7
- 使用GSON和泛型解析约定格式的JSON串(转)
- 解决在nginx+php环境下$_SERVER[&#39;PHP_SELF&#39;]获取不到值的问题
- Linux故障-bash-4.1$
热门文章
- Python 【绘制图及turtle库的使用】
- vue中moment.js的使用
- 小白学 Python 数据分析(17):Matplotlib(二)基础操作
- this.baseInfoList = [...this.baseInfoList] 所有和数组有关的操作,最后一定都展开一次,否则就没有双向绑定!!
- 使用 C# 和 OpenGL (SharpGL) 实现的一个简易画图版
- python获取群成员信息
- flex弹性盒子实现微博页面
- Django-jwt token生成源码分析
- 牛客练习赛60 A—F题解(缺E题)
- 面试刷题17:线程两次start()会发生什么?