Java语言基础:流类(1)

1.  java通过流的概念来实现数据的输入输出,或叫读写更容易理解一些;下面4个类是所有流的基类,分别处理字节和字符的读写:
  • InputStream: 输入(读)字节流抽象类。
  • OutputStream: 输出(写)字节流抽象类。
  • Reader: 输入(读)字符流抽象类。
  • Writer: 输出(写)字符流抽象类。

2.  上面4个抽象类提供了最基本的读写方法,输入输出流有一个当前位置(Pos)的概念,指定下一次的读写将从流的什么位置开始,调用Read或Write方法时,Pos会同时向后移,移多少依读写多少字节或多少字符而定:

  • InpuStream:

方法
说明
public abstract int read()
从流中读下一个字节,方法返回这个字节,但如果到达流结尾,将返回回-1。
public int read(byte[] b)
从流中读出多个字节,并存到数组b中;期望读出的字节数由数组的长度决定,方法返回的是实际读出的字节,如果已到达结尾将返回-1。
public int read(byte[] b, int off, int len)
 
从流中读出多个字节,并存到数组b中;期望读出的字节数由len决定,off指定b的偏移,数据将从这个偏移开始保存;方法返回实际读出的字节,如果已到达结尾将返回-1。
public void mark(int readlimit)
标记一个位置,当下一次调用reset时,Pos将被定位到这个位置。
public void reset()
重置Pos到上一次mark指定的位置,默认为0.
public boolean markSupported()
是否支持标记
public long skip(long n)
从Pos跳过n个字节,相当于Pos += n。
public void close()
关闭流以释放相关的系统资源,比如文件流,但并不是所有的流类都需要Close。
public int available()
还有多少字节可以读取,相当于: Size - Pos

  • OutStream:

方法
说明
public abstract void write(int b)
向流写一个字节
public void write(byte[] b)
向流写多个字节
public void write(byte[] b, int off, int len)
向流写多个字节,从数组的off偏移开始写,最多写len个字节。
public void close()
关闭流以释放相关的系统资源,比如文件流,但并不是所有的流类都需要Close。
public void flush()
刷新流,提供这个方法意图是:如果流的实现是将之前写入的数据缓存着,调用该方法可以强迫将数据真正写入流中。

  • Reader和Writer和上面的InputStream和OutStream很类似,只不过他们读写的单位是字符,并且提供几个方法读写String的方法。
3.  所有流类都直接或间接继承自上面4个抽象类,并提供不同的功能,下面是常用流类的继承关系:
InputStream
    |-ByteArrayInputStream: 字节输入流。
    |-FileInputStream: 文件输入流
    |-ObjectInputStream: 对象输入流
    |-PipedInputStream: 管道输入流
    |-FilterInputStream: 过滤输入流
        |-BufferedInputStream: 缓存输入流,读出时先缓存。
        |-DataInputStream: 数据输入流,读出Java基本数据类型。
OutStream
    |-ByteArrayOutputStream: 字节输出流
    |-FileOutputStream: 文件输出流
    |-ObjectOutputStream: 对象输出流
    |-PipedOutputStream: 管道输出流
    |-FilterOutputStream: 过滤输出流
        |-BufferedOutputStream: 缓存输入流,读出时先缓存。
        |-DataOutputStream: 数据输入流,读出Java基本数据类型。
Reader
    |-CharArrayReader: 字符读流。
    |-StringReader: 字符串读流。
    |-PipedReader: 管道读流。
    |-BufferedReader: 缓存读流。
    |-InputStreamReader: 从字节流读出字符。
Writer
    |-CharArrayWriter: 字符写流。
    |-StringWriter: 字符串写流。
    |-PipedWriter: 管道写流。
    |-BufferedWriter: 缓存写流。
    |-OutputStreamWriter: 将字符写入字节流。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值