Javo 基础 流的分类

来源:互联网 发布:广告机改网络电视 编辑:程序博客网 时间:2024/05/17 00:57

字节流inputStream outStream

字符流 reader writer 针对Java语言而言 换算与截取

对象流

内存存东西以字节为单位 java处理字符串以字符单位 一个字符等于两个字节

 

read() 返回一个整数 占4个字节 读入的字节占第一位字节 后面3个字节为数字0

 当读取到达流的末尾,则返回 -1。后面3个字节为数字为-1

字节流属于低层次的流

如果因为流位于文件末尾而没有可用的字节,则返回值 -1;否则,至少读取一个字节并将其存储在 b 中

 

字符流 一次性读取一个字符

缓冲区的概念 提高效率 硬盘内存的差异 内存 半导体 总线数

批量操作 时间与单个字节保存硬盘的时间一样

缓冲区可以大大文件输出输入的效率

自己能提供数据来源叫源流

加工流 过滤流 自己不提供数据来源 提取别的流进行加工 增加操作数据的方法

 

 

 

流类的比较 暗藏一个指针

 

字节流

字符流

输入流

InputStream

Reader

方法

int read()字节1/4

int read()字符2/4

 

int read(byte[] b)

从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。以整数形式返回实际读取的字节数。

int read(char[] b)

 

将字符读入数组。

 

read(byte[] b, int off, int len)
          将输入流中最多 len 个数据字节读入 byte 数组。

read(byte[] b, int off, int len)

b - 读入数据的缓冲区。

off - 数组 b 中将写入数据的初始偏移量。

len - 要读取的最大字节数。

 

 

Long skip(long n)

Long skip(long n)

 

Void close()

Void close()

源流类

 

File

Piped       InputSteam

Bytearray

Stringbuffer   来自系统

File

Piped           Reader

Chararray

Stringbuffer

过滤流

BufferedInputStream

PushbackInputStream(uread)

DataInputStream

ObjectInputStream

BufferedReader

PushbackReader(uread)

输出流

OutputStream

Writer

源流类

File

Piped       OutputSteam

Bytearray

Stringbuffer

File

Piped           Writer

Chararray

Stringbuffer

过滤流

BufferedOutputSteam

PushbackOutputSteam (uread)

DataOutputSteam

ObjectOutputSteam

BufferedWriter(newLine)

二进制文件 换行

PushbackWriter (uread)

 

void close()

void close()

 

void flash() 强写刷新该流的缓冲。如果该流已保存缓冲区中各种 write() 方法的所有字符,则立即将它们写入预期目标。然后,如果该目标是另一个字符或字节流,则将其刷新。因此,一次 flush() 调用将刷新 Writer 和 OutputStream 链中的所有缓冲区

void flash()

方法

void write(int)

void write(byte[])

void write(byte[] b, int off, int len)

void write(int)

void write(char[] b, int off, int len)

void write(char[])

void write(String str)

void write(String str,int a,int b)


          写入字符串/一部分

 



 

 混合编码

管道资源占用系统资源

File 用来对文件和目录进行操作

0 0