A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 莫名12301 中级黑马   /  2015-7-17 10:54  /  382 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


什么是IO流?
byte序列的读写,Java中的IO流是实现输入/输出的基础.
1)
InputStream : 抽象类读取数据的过程  包含读取方法read();
  in 模仿了读取小说的过程
简单说  :  in是读取文件的
OutputStream:抽象了写出数据的过程  包含写出方法write();
out模仿了写笔记记录的过程
简单说  : out是写入文件的

基本的byte流
InputStream(抽象方法read())
|--- FileInputStream(read()在文件上读取)   节点流
|
|--- FilterInputStream 过滤器流,输入流功能的扩展
|   |--- DataInputStream(readInt())  基本类型数据的读取
|   |--- BufferedInputStream 提供读取缓冲区管理
| --- ObjectInputStream   过滤器流,依赖基本byte流,扩展对象的反序列化
OutputStream(抽象方法write())
|--- FileOutputStream(write()在文件上写实现写入)   节点流
|
|--- FilterOutputStream 过滤器流,输出流功能的扩
|    |--- DataOutputStream(writerInt())  基本类型数据的写出
|    |--- BufferedOutputStream 提供了输出缓冲区管理
| --- ObjectOutputStream 过滤器流,依赖基本byte流,扩展对象的序列化
注意:除节点流外都是过滤器流
字符流,可以处理字符编码,底层依赖于byte流
Reader 读取文本
     | --- InputStreamReader  过滤去,依赖基本byte输入流
     |      实现文本编码的解析
     |
     | --- BufferedReader 过滤器, 需要依赖Reader 实例
     |    提供了readLine()方法, 可以在文本文件中读取一行
     |    是常用的文本读取方法   
Writer
     | --- OutputStreamWriter  过滤器,,依赖基本byte输出流
     |        实现文本编码
     | --- PrintWriter  过滤器,依赖于Writer 流
     |                       提供了输出文本常有方法println()

2)  EOF =  End of File = -1 (文件读到末尾会返回-1)
3)  输入流的基本方法  
InputStream in = new InputStream(file) / /file是文件名
int b  = in.read();      读取一个byte无符号填充到int底八位,-1是EOF
int.read(byte[] buf)    读取数据填充到buf中
int.read(byte[] buf,int start,int size)  读取数据填充到buf中
in.close      关闭输入流
4)输出流的基本方法:
OutputStream out = new OutputStream(file) / /file是文件名
out.write(int b)     写出一个byte 到流 b 的底八位写出
out.write(byte[] buf)    将buf的一部分写入流中
out.write(byte[] buf, int start, int size)  将buf的一部分写入流中
out.flush()      清理缓存
out.close
1.FileInputStream (read()在文件上读取)   节点流
方法:  read()         从输入流中读取数据的下一个字节
     read(byte[] buf)  从输入流中读取一定数量的字节,并将其存储在缓冲区数组 buf中
    read(byte[] b, int off, int len) 将输入流中最多 len 个数据字节读入 byte 数组。


评分

参与人数 1黑马币 +1 收起 理由
耀阳圣尊 + 1

查看全部评分

1 个回复

倒序浏览
总结的很全面
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马