IO流的学习

目录

一、为什么会出现IO流

 二、FIle的作用  与IO流的作用

三、IO流的读写方向  参照物

 四、IO流的分类

 五、IO流体系

 六、实现类

1、文件输入、输出流

FileOutputStream  输出流   写入代码

换行与续写

 FileInputStream   输入流  读取代码   读取一次  移动一次指针

 边读边写   一次读写一个字节 

 边读边写   一次读写多个字节   read方法重载

 文件拷贝 5m/次

 try..catch的异常处理

 字节流读取文件时,文件中不要有中文,如果有中文,会出现乱码

2、GBK与ASCII码   Unicode:万国码

​编辑 3.字符流   底层用的是字节流  一次读取一个字节  遇到中文  一次读取多个字节

​编辑FIleReader

FileWriter​编辑

 代码演示:

 字符流原理解析:


一、为什么会出现IO流

内存不能永久化存储,程序停止 ,数据就会丢失

使用IO流 将内存中的数据 保存在硬盘中        

输出流--->从程序到文件(磁盘)    outputStream  writer  

输入流--->从磁盘到程序            inputStream   reader

 二、FIle的作用  与IO流的作用

File可以查看文件信息,删除文件,创建文件,但是不能读写文件内容

--->只能对文件本身进行操作   不能读写文件里存储的数据

IO流的出现  可以读写文件内容

三、IO流的读写方向  参照物

程序运行在内存中  程序对磁盘进行读写

 四、IO流的分类

分为  输入流、输出流     字节流   字符流

 纯文本文件--->能用记事本打开的,能读懂的文件(不是乱码的文件eg:txt、md文件)

 txt、md文件可以用字符流   excel文件、word文件只能用字节流

 

 五、IO流体系

 六、实现类

1、文件输入、输出流

FileOutputStream  输出流   写入代码

 实际操作

如果文件不存在 ,会先创建这个文件,才会输出   --->从程序输出到磁盘

如果文件已经存在,会先清空文件,才会输出

 write方法写入数字  会变成对应的ACII值

FIleOutputStream写数据的3种方式

换行与续写

 FileInputStream   输入流  读取代码   读取一次  移动一次指针

 边读边写   一次读写一个字节 

 边读边写   一次读写多个字节   read方法重载

 文件拷贝 5m/次

 

 try..catch的异常处理

 字节流读取文件时,文件中不要有中文,如果有中文,会出现乱码

2、GBK与ASCII码   Unicode:万国码

一个中文字符占两个字节,一个英文字母 占一个字节

 3.字符流   底层用的是字节流  一次读取一个字节  遇到中文  一次读取多个字节

FIleReader

FileWriter

 代码演示:

 字符流原理解析:

为什么会出现乱码?

1.读取数据时未读完整个字

2.编码和解码时的方式不统一

 字节流和字符流的使用场景:

字节流:拷贝任意类型的文件  ------>拷贝文件

字符流:读取纯文本文件中的数据,往纯文本文件中写出数据

拷贝文件案例:

字符流的原理解析:

 

 

缓冲流:bufferedInputStream

缓冲流的默认空间大小是8192  所以效率比基本流InputStream要高  底层用的是基本字节流     

 字节缓冲流 一次读写多个字节

 字节缓冲流提高效率的原理:

 内存中数据传输的速度很快,不会提高效率,真正提高效率的是与硬盘之间交换数据的效率

字符缓冲流:

字符流本身自带缓冲区,字符缓冲流本身不能提升多少效率

但是字符缓冲流有两个特有的方法:

 转换流:

 最终版本,包含字节流,转换流,缓冲流

 

 序列化流:

 将文件序列化到磁盘

 

 

 

 打印流:

 

 

 

 常用工具包:

Commons-io:

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值