java中的io流

java提供了完善的从文件或控制台读写的机制。

为了避免长时间不用后忘记,在此归纳总结。

参考了

http://blog.csdn.net/sunzhenhua0608/article/details/8692122


流的分类:

1. 从方向上分: 输入和输出

2. 从单位上分:字符流和字节流

3.从功能上分:装饰流和非装饰流


区分字节和字符:

1. 字节流:处理单位是字节(byte)带stream字样的。 

对于字节流处理的类都继承自InputStream和OutputStream这两个抽象类。

InputStream提供的最重要的方法是:

Java代码

  1. read();   
  2. read(byte[] b) ;   
  3. read(byte[] b, int off, int len) ;  

 

用于从输入流中读取字节。

OutputStream提供的最重要的方法是:

Java代码

  1. write(int b);   
  2. write(byte[] b);   
  3. write(byte[] b, int off, int len)   

用于将字节写入输出流。


所有的字符流操作类都继承自Reader或者Writer这两个抽象类。

Reader提供的重要方法有:

Java代码

  1. read(char[] cbuf);   
  2. read(char[] cbuf, int off, int len);   
  3. read(CharBuffer target);  

 

他们提供了从流中读取数据到字符数组或者CharBuffer的功能。

 

2.
字符流:处理单位是字符(16位的unicode表示的编码)。从reader writer派生而来的。

Writer提供的重要方法有:

Java代码

  1. write(char[] cbuf);   
  2. write(char[] cbuf, int off, int len);   
  3. write(int c);   
  4. write(String str);   

write(String str, int off, int len);  

他们提供了把字符、字符数组或者字符串写入流中的功能。


名字中既有writer和stream或者reader和stream的,是byte和char转换的桥梁。


a. 字节流:

InputStream

|-- FileInputStream (基本文件流)

|-- BufferedInputStream

|-- DataInputStream

|-- ObjectInputStream

OutputStream 同上图

BufferedInputStream,DataInputStream,ObjectInputStream 只是在FileInputStream 上增添了相应的功能,构造时先构造FileInputStream

 

b. 字符流:

Reader

|-- InputStreamReader (byte->char 桥梁)

|-- BufferedReader (常用)

Writer

|-- OutputStreamWriter (char->byte 桥梁)

|-- BufferedWriter

|-- PrintWriter (常用)


装饰类即套在基本流的外面,装饰类的构造函数的参数是基本流
字符流:处理单位是字符(16位的unicode表示的编码)。从reader writer派生而来的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值