InputStream OutputStream BufferInputStream BufferOutputStream

 



 

InputStream

outputStream

 

字节流基类

 

 

InputStream

 

主要用于对二进制的非文本文件进行操作如多媒体 Mp3等

InputStream主要用于对文件读取到输入流当中,是一个抽象的类

常用到的方法:

InputStream.read();读取一个字节的信息到输入流当中

InputStream.read([]);读取指定数据字节的信息到输入流当中

 

使用方法

InputStream is = new FileInputStream("D:\\aa.txt");

int r=is.read();

System.out.println((char)r);   读取出一个字节并打印出来

 

 

 

 

outputStream

这也是一个抽像类

主要用于将流中的二进制数据写入到文件当中

常用方法

outputStream.writer()读取一个字节的信息到输入流当中

outputStream.writer(byte[]);读取一个字节的信息到输入流当中

 

 

 

BufferedInputStream

因为InputStream在读取的时候一次只会读取一个字节,如果数据量大的话,磁盘的磁头也会消耗很快,

读取速度也不快,所以BufferedInputStream的出现就是为了创建一个缓存区,

InputStream一次性读取一个定长度的信息到一个缓存数组里面,减少对磁盘的I/O操作,建立缓存机制

 

 

BufferOutputStream

由于OutputStream.writer();每次向硬盘写入一个字节的数据,造成频繁的写入,写入慢,所以建立了BufferOutputStream缓存机制,

将输入流的每次读取一个字节的信息放到BufferOutputStream中,等达到一定数量的时候写入硬盘中,减少了写入的次数,提高了效率

 

 

 

未例:

未加缓存复制文件

InputStream is = new FileInputStream(“D:\\aa.txt”);

OutputStream os = new FileOutputStream("D:aaaa.txt");

int r=0;

while((r=is.read)!=-1){

os.writer(r);

}

 

 

加缓存复制文件

InputStream is = new FileInputStream(“D:\\aa.txt”);

BufferedInputStream dis = new BufferedInputStream(is);

OutputStream os = new FileOutputStream("D:aaaa.txt");

BufferedOutputStream bos = new BufferedOutputStream(os);

int r=0;

while((r=dis.read)!=-1){

bos.writer(r);

}

 

 

疑惑点:

InputStream is = new FileInputStream(“D:\\aa.txt”);

OutputStream os = new FileOutputStream("D:aaaa.txt");

byte[] b =new byte[1024]';  在这里设置一个缓存,和BufferedInputStream的缓存原理是一样的。为什么还要用BufferedInputStream呢

int r=0;

while((r=is.read(b))!=-1){

os.writer(b);

}

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值