缓冲流、字节数据流

缓冲流:
BufferedOutputStream:字节缓冲输出流

在写数据时,一个字节一个字节的写,写的次数明显很多,效率就会变得很低。
缓冲输出流的特点是:在流里维护了一个缓冲区,写字节时,先将字节写入缓冲区,当缓冲区写满时,在一次性的将数据写到文件里。这样就降低了写的次数,提高了效率。
一次缓冲输出流缺失即时性,可以使用flush方法冲刷。

常用构造器:

BufferedOutputStream(OutputStream out):创建一个制定字节输出流的缓冲流对象。
BufferedOutputStream(OutputStream out,int size):创建一个指定字节输出流的缓冲输出流对象,并设置缓冲取得大小。

常用方法:

void write(int b):写int数据的低八位,写入缓冲区内。
void write(byte[] b,int off,int len):写指定长度len的字节数组,写入缓冲区。

BufferedInputStream:字节缓冲输入流

再读取字节时,也是一个字节一个字节的读,次数多,效率低。
使用缓冲输入流,内部维护了一个缓冲区,默认大小为8k,先一次性将缓冲区装满等待读取。当将缓冲区数据读完,缓冲区再次存储后续数据。读取的次数少,效率高。

构造器:

BufferedInputStream(InputStream is):创建一个制定字节输入流的缓冲流对象。
BufferedInputStream(InputStream is,int size):创建一个指定字节输出流的缓冲输入流对象,并设置缓冲取得大小。

常用方法:

int read(byte[] bs):读取缓冲区里的字节存储到bs中。
int read(byte[] bs,int off,int len):从给定的偏移off开始,将字节输入流中的len个字节读入指定的字节数组。 

数据字节流:DataOutputSteam/DataInputStream

与缓冲流一样,父类都是过滤字节流(FilterOutputSteram/FilterInputStream),这两个类提供了几个特殊的方法,可以直接写基本数据类型。

数据输出流:DataOutputStream

构造器:

DataOutputSteram(OutputStream os):创建一个指定字节输出流的数据输出流对象。

常用方法:

void write(byte[] b, int off, int len) :写入 len从指定的字节数组起始于偏移 off基础输出流。  
void write(int b) :将指定的字节(参数 b的低8位)写入底层输出流。  
void writeBoolean(boolean v) :将 boolean写入底层输出流作为1字节值。  
void writeByte(int v) :将 byte作为1字节值写入底层输出流。  
void writeBytes(String s) :将字符串作为字节序列写入基础输出流。  
void writeChar(int v) :将 char写入底层输出流作为2字节值,高字节优先。  
void writeChars(String s) :将字符串写入底层输出流作为一系列字符。  
void writeDouble(double v) :双参数传递给转换 long使用 doubleToLongBits方法在类 Double ,然后写入该 long值基础输出流作为8字节的数量,高字节。  
void writeFloat(float v) :浮子参数的转换 int使用 floatToIntBits方法在类 Float ,然后写入该 int值基础输出流作为一个4字节的数量,高字节。  
void writeInt(int v) :将底层输出流写入 int作为四字节,高位字节。  
void writeLong(long v) :将 long写入底层输出流,为8字节,高字节为首。  
void writeShort(int v) :将 short写入底层输出流作为两个字节,高字节优先。  
void writeUTF(String str) :使用 modified UTF-8编码以机器无关的方式将字符串写入基础输出流。  

数据输入流:DataInputStream

构造器:

DataInputStream(InputStream in) :创建使用指定的底层InputStream的DataInputStream。  

常用方法:

int read(byte[] b) :从包含的输入流中读取一些字节数,并将它们存储到缓冲区数组 b 。  
int read(byte[] b, int off, int len) :从包含的输入流读取最多 len个字节的数据为字节数组。  
boolean readBoolean() :读取一个输入字节,并返回 true如果该字节不为零, false如果该字节是零。  
byte readByte() :读取并返回一个输入字节。    
char readChar() :读取两个输入字节并返回一个 char值。   
double readDouble() :读取八个输入字节并返回一个 double值。    
float readFloat() :读取四个输入字节并返回一个 float值。    
int readInt() :读取四个输入字节并返回一个 int值。  
long readLong() :读取八个输入字节并返回一个 long值。
short readShort() :读取两个输入字节并返回一个 short值。
String readUTF() :读取已使用 modified UTF-8格式编码的字符串。  
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值