拿捏Java:IO流

111 阅读2分钟

一、概念

image.png

image.png

image.png

image.png

image.png

是内存和程序

二、分类

image.png

读取:读取本地文件中的数据

写出:把数据写到本地文件中

image.png 纯文本文件:windows自带的记事本可以打开并且读的懂的文件(TXT,MD)

三、体系结构

image.png

(一)字节流

OutputStream

FileOutputStream

image.png

image.png

写数据的方法:

image.png

image.png

写数据的两个小问题:换行和续写
换行写:

image.png image.png

续写:

image.png image.png

InputStream

FileInputStream

image.png

读取数据的方法:

单个读取

image.png image.png 循环读取

image.png 文件拷贝

一次只读一个字节

image.png

一次读取多个字节

image.png

image.png

image.png 正确写法: image.png 拷贝大文件:

image.png

try...catch异常处理

image.png

(二)字符集

字节流读取中文会出现乱码

ASCII+GBK:

image.png

image.png image.png

image.png

image.png

image.png

Unicode:万国码

image.png image.png

image.png

image.png

为什么会有乱码?

image.png

原因一:字节流一次读取一个字节,三个字节组成一个汉字

image.png

Java中编码和解码的方法:

image.png

image.png

解决字节流一次读取一个字节而导致的汉字乱码问题

(三)字符流

image.png

image.png

FileReader

image.png

image.png

image.png

FileWriter

image.png

image.png

image.png

image.png

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

image.png

综合练习:

1、拷贝文件夹,包括子文件夹

image.png

image.png

2、文件加密和解密

image.png

A异或B异或B=A

文件加密:

image.png

文件解密:

image.png

3、修改文件中的数据

image.png image.png image.png

(四)高级流

image.png

缓冲流

image.png

字节缓冲流

image.png

image.png

缓冲流拷贝文件:

image.png

字符缓冲流

image.png

image.png

image.png

image.png

image.png

要续写:

image.png

image.png

综合练习:

1、将文件中的内容排序,并且拷贝到另一个文件中

方法一: image.png

方法二:

TreemAp中的默认排序方法是从小到大

image.png

2、软件运行次数

image.png

转换流

image.png

image.png

image.png

image.png

练习1: image.png

image.png 练习2: image.png

image.png

序列化流

image.png

image.png

image.png

image.png

image.png

image.png

反序列化流

image.png

image.png

序列化流和反序列化流的使用细节

当javabean中的内容发生改变时,原来的序列化流输入到文件中的内容会发生变化,这是因为文件中存储的版本号和javabean中存储的版本号不一致;

解决方法:固定javabean的版本号,即在javabean中定义private static final long serialVersionUID=1L;

image.png

练习: image.png image.png image.png

打印流——不能读,只能写

image.png image.png image.png

image.png

字节打印流:

image.png

image.png

应用: image.png

字符打印流:

image.png

image.png

image.png

image.png

解压缩流

image.png

image.png 练习: 解压缩压缩包到本地文件夹:

image.png

**压缩流 **

image.png

练习:压缩单个文件

image.png

练习:压缩文件夹(复杂)

image.png

(五)Commons-io工具包

image.png

image.png

image.png

image.png

(六)HuTool工具包

image.png

image.png

综合练习

1、从网站爬取数据

爬取网站的所有数据: image.png

获取自己想要的数据:

image.png

在主函数中调用这些方法:

image.png