您的位置:首页 > Web前端

java中常用io流 BufferedInputStream和BufferedOutputStream

2015-08-21 19:32 465 查看

BufferedInputStream
为另一个输入流添加一些功能,即缓冲输入以及支持
mark
reset
方法的能力。在创建
BufferedInputStream
时,会创建一个内部缓冲区数组。在读取或跳过流中的字节时,可根据需要从包含的输入流再次填充该内部缓冲区,一次填充多个字节。

这是摘录自API文档中的

BufferedInputStream

方法摘要
int
available()


返回可以从此输入流读取(或跳过)、且不受此输入流接下来的方法调用阻塞的估计字节数。
void
close()


关闭此输入流并释放与该流关联的所有系统资源。
void
mark(int readlimit)


参见
InputStream
mark
方法的常规协定。
boolean
markSupported()


测试此输入流是否支持
mark
reset
方法。
int
read()


参见
InputStream
read
方法的常规协定。
int
read(byte[] b,int off,int len)


从此字节输入流中给定偏移量处开始将各字节读取到指定的 byte 数组中。
void
reset()


参见
InputStream
reset
方法的常规协定。
long
skip(long n)


参见
InputStream
skip
方法的常规协定。
构造方法摘要
BufferedInputStream(InputStream in)


创建一个
BufferedInputStream
并保存其参数,即输入流
in
,以便将来使用。
BufferedInputStream(InputStream in,int size)


创建具有指定缓冲区大小的
BufferedInputStream
并保存其参数,即输入流
in
,以便将来使用。

BufferedOutputStream的跟BufferedInputStream基本类似,一个为写入一个为读出。 BufferedOutputStream带有一个刷新功能,与关闭一起使用。下面是一个简单的使用例子,通过对文件的写入和读出,实现了对文件的拷贝功能。

另外在读取写入文件的时候要抛异常。
import java.io.*;

public class Buffered1 {
public staticvoid main(String[] args){

BufferedInputStream bi = null;
FileInputStream fi = null;
BufferedOutputStream bo = null;
FileOutputStream fo = null;
try {
fi = new FileInputStream("E:\\haha\\class1.class");
fo = new FileOutputStream("E:\\class1.class");
bi = new BufferedInputStream(fi);
bo = new BufferedOutputStream(fo);
int next = 0;
while((next=bi.read())!=-1){
bo.write(next);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
bi.close();
bo.flush();
bo.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}


}

}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: