java IO流

IO流
一、概念
I/O : Input 输入 Output 输出
流:数据传输的通道 管道
IO流:数据输入输出的通道
作用:将外部存储设备的数据读入到程序中或者将程序中的数据传输到外部存储设备中
内存中的数据:瞬时存储 程序结束 数据释放 —— 不持久
数据持久化:将数据永久保存 硬盘、文件、U盘、数据库…
总结:IO流用于数据传输【程序 ----- 外部存储设备】
二、分类 【重点】
1、数据传输方向 以JVM为基准
输出流:JVM向外部存储设备传输数据的通道
输入流:外部存储设备向JVM中传输数据的通道
2、数据传输单位
字节流:以字节为基本传输单位的通道 传输 字符、二进制文件【图片、视频…】
可以传输一切数据 inputStream|outputStream
字符流:以字符为基本传输单位的通道 传输 字符
只能传字符 Reader | Writer
3、传输功能
节点流:只负责基础的传输功能
过滤流:为节点流增强功能 对节点流封装
三、字节流 以字节为数据传输单位
1、InputStream | OutputStream 字节流的父类 抽象类
InputStream 字节输入流
read() 读取数据
read(byte[] bs) 读取一个数组长度
read(byte[] bs , int off , int len) 读取一个数组长度的局部
OutputStream 字节输出流
write(int i) 写出数据
write(byte[] bs) 写出一个数组长度数据
write(byte[] bs , int off , int len) 写出一个数组长度数据的局部
2、节点流
FileInputStream | FileOutputStream 文件字节输入流 | 文件字节输出流 两个节点流
InputStream is = new FileInputStream(“文件路径”);
OutputStream os = new FileOutputStream(“文件路径”);
文件路径:
C:\myfile\xx.txt 绝对路径 相对盘符的路径
xx.txt 相对路径 相对当前工作空间的路径 跟随工作空间而变化
3、过滤流 为节点流增强功能
(1)DataOutputStream|DataInputStream 传输八种基本类型
(2)BufferedOutputStream|BufferedInpuStream 具有缓冲功能的字节过滤流
(3)ObjectOutputStream|ObjectInputStream 传输八种基本类型和对象类型数据
对象序列化:指java中的对象可以通过IO进行完整传输
要求:要求通过IO传输的类型要可以被序列化 【必须实现Serializable接口】
要求类型内部的所有属性均要可以序列化
transient 修饰符 用于修饰属性 表示在序列化时忽略此属性 不参与序列化
四、字符流 以字符为基本传输单位
1、父类 Reader | Writer 抽象类
2、FileReader | FileWriter 字符节点流
3、BufferedReader | PrintWriter 字符过滤流
五、桥转换流
作用:将字节流转化为字符流
InputStreamReader | OutputStreamWriter
在这里插入图片描述
特点:将二进制数据处理方式转化为字符处理 同时可以设置编码
编码:字符集
GB2312 国标
GBK 国标扩展
ISO-8859-1 西欧
BIG5 繁体中文
UTF-8 unicode 可变长万国码

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值