(Java学习)五、IO流

目录

  • 1、File类
    • 1.1 概述
    • 1.2 常用功能
    • 1.3 递归
  • 2、字节流
    • 2.1 概述和分类
    • 2.2 字节流写数据
    • 2.3 字节流读数据
    • 2.4 字节缓冲流
  • 3、字符流
    • 3.1 为什么要有字符流?
    • 3.2 编码表
    • 3.3 字符串的编码解码问题
    • 3.4 字符流写数据的5种方式
    • 3.5 字符流读数据的2种方式
    • 3.6 字符缓冲流
    • 3.7 字符缓冲流特有功能
    • 3.8 IO小结
    • 3.9 复制文件的异常处理
  • 4、特殊操作流
    • 4.1 标准输入输出流
    • 4.2 打印流
    • 4.3 对象序列化流和对象反序列化流
    • 4.4 Properties
    • 4.4.1 Properties作为Map集合的使用
      • 4.4.2 Properties和IO流结合

1、File类

1.1 概述

(Java学习)五、IO流_第1张图片
(Java学习)五、IO流_第2张图片

1.2 常用功能

(Java学习)五、IO流_第3张图片
如果不存在就创建,返回true。如果存在就不创建,并返回false
mkdir只能创建一个目录。mkdirs可以创建多级目录。
创建文件就应该用创建文件的方式。

(Java学习)五、IO流_第4张图片
(Java学习)五、IO流_第5张图片
(Java学习)五、IO流_第6张图片

(Java学习)五、IO流_第7张图片

1.3 递归

(Java学习)五、IO流_第8张图片
(Java学习)五、IO流_第9张图片
(Java学习)五、IO流_第10张图片

2、字节流

2.1 概述和分类

(Java学习)五、IO流_第11张图片
(Java学习)五、IO流_第12张图片
字节流是万能的。

2.2 字节流写数据

(Java学习)五、IO流_第13张图片
(Java学习)五、IO流_第14张图片
读数据——输入流
写数据——输出流

(Java学习)五、IO流_第15张图片
(Java学习)五、IO流_第16张图片

(Java学习)五、IO流_第17张图片
(Java学习)五、IO流_第18张图片
一定要记得释放资源。close方法
(Java学习)五、IO流_第19张图片
(Java学习)五、IO流_第20张图片
不同操作系统的换行识别是不同的。
(Java学习)五、IO流_第21张图片
追加写入,构造时指定为追加写入模式。
在这里插入图片描述
(Java学习)五、IO流_第22张图片
(Java学习)五、IO流_第23张图片
(Java学习)五、IO流_第24张图片

2.3 字节流读数据

(Java学习)五、IO流_第25张图片
读到文件末尾会返回-1,用于判断是否读完。
(Java学习)五、IO流_第26张图片
输入流读取标准代码:
(Java学习)五、IO流_第27张图片
(Java学习)五、IO流_第28张图片
(Java学习)五、IO流_第29张图片
注意抛出异常throws IOException

(Java学习)五、IO流_第30张图片
(Java学习)五、IO流_第31张图片
(Java学习)五、IO流_第32张图片
标准代码:
(Java学习)五、IO流_第33张图片
(Java学习)五、IO流_第34张图片
(Java学习)五、IO流_第35张图片

2.4 字节缓冲流

(Java学习)五、IO流_第36张图片
FileOutStream写入的时候会导致底层系统的调用。
(Java学习)五、IO流_第37张图片
(Java学习)五、IO流_第38张图片
(Java学习)五、IO流_第39张图片
(Java学习)五、IO流_第40张图片

3、字符流

3.1 为什么要有字符流?

汉字,GBK编码占2个字节,UTF-8占3个字节。
(Java学习)五、IO流_第41张图片
(Java学习)五、IO流_第42张图片

3.2 编码表

(Java学习)五、IO流_第43张图片
(Java学习)五、IO流_第44张图片
(Java学习)五、IO流_第45张图片
(Java学习)五、IO流_第46张图片
(Java学习)五、IO流_第47张图片

3.3 字符串的编码解码问题

(Java学习)五、IO流_第48张图片
IDEA平台默认字符集为UTF-8,
编码和解码采用的字符集必须一致。

(Java学习)五、IO流_第49张图片
在这里插入图片描述

3.4 字符流写数据的5种方式

(Java学习)五、IO流_第50张图片
(Java学习)五、IO流_第51张图片
在这里插入图片描述
在这里插入图片描述
(Java学习)五、IO流_第52张图片

3.5 字符流读数据的2种方式

(Java学习)五、IO流_第53张图片
(Java学习)五、IO流_第54张图片
(Java学习)五、IO流_第55张图片
(Java学习)五、IO流_第56张图片
(Java学习)五、IO流_第57张图片
读写可以用FileReader和FileWriter,但是若需要编解码,仍然需要使用InputStreamReader和OutputStreamWriter

3.6 字符缓冲流

(Java学习)五、IO流_第58张图片
(Java学习)五、IO流_第59张图片
(Java学习)五、IO流_第60张图片
(Java学习)五、IO流_第61张图片

(Java学习)五、IO流_第62张图片

3.7 字符缓冲流特有功能

(Java学习)五、IO流_第63张图片
readLIne()方法,一次读一行内容,只读内容,不读换行符
(Java学习)五、IO流_第64张图片
适配不同的系统的换行。

(Java学习)五、IO流_第65张图片
(Java学习)五、IO流_第66张图片

3.8 IO小结

(Java学习)五、IO流_第67张图片
(Java学习)五、IO流_第68张图片
(Java学习)五、IO流_第69张图片
(Java学习)五、IO流_第70张图片
(Java学习)五、IO流_第71张图片
(Java学习)五、IO流_第72张图片
(Java学习)五、IO流_第73张图片
(Java学习)五、IO流_第74张图片
(Java学习)五、IO流_第75张图片
(Java学习)五、IO流_第76张图片
(Java学习)五、IO流_第77张图片
(Java学习)五、IO流_第78张图片
(Java学习)五、IO流_第79张图片

3.9 复制文件的异常处理

(Java学习)五、IO流_第80张图片

4、特殊操作流

4.1 标准输入输出流

(Java学习)五、IO流_第81张图片
(Java学习)五、IO流_第82张图片

4.2 打印流

(Java学习)五、IO流_第83张图片
(Java学习)五、IO流_第84张图片
(Java学习)五、IO流_第85张图片
(Java学习)五、IO流_第86张图片

4.3 对象序列化流和对象反序列化流

(Java学习)五、IO流_第87张图片
在这里插入图片描述
(Java学习)五、IO流_第88张图片
(Java学习)五、IO流_第89张图片
(Java学习)五、IO流_第90张图片
(Java学习)五、IO流_第91张图片

4.4 Properties

4.4.1 Properties作为Map集合的使用

(Java学习)五、IO流_第92张图片
(Java学习)五、IO流_第93张图片
(Java学习)五、IO流_第94张图片

4.4.2 Properties和IO流结合

(Java学习)五、IO流_第95张图片
(Java学习)五、IO流_第96张图片

你可能感兴趣的:(基于Java,java)