FIle类

文件和文件夹

计算机的文件系统中包含文件和文件夹
文件夹相当于一个容器,可以保存多个文件。数据可以保存在文件中,可以达到永久保存,断电重启后文件中的数据还存在。

File类的介绍

java.io.File类可以表示文件文件夹,主要用于文件和文件夹的创建、查看、和删除等操作。

File类构造方法

java.io.File类是通过路径名表示文件和文件夹。
image.png

绝对路径和相对路径!

image.png

File类创建功能!

File类可以创建文件和文件夹
image.png

File类删除功能!

File类可以删除文件和文件夹
image.png
删除目录的注意事项:
delete方法直接删不走回收站
如果删除的是一个文件,直接删除。
如果删除的是一个文件夹,如果文件夹中有内容,则无法删除

File类判断和获取功能(重)

File类可以表示文件或文件夹,以及获取相关信息。

image.png
File类遍历文件夹
File类的listFIles()可以列出文件夹中的所有内容。
image.png

注意
File对象只有代表文件夹,才能调用listFiles()。
如果File对象代表文件,调用listFiles() 得到的结果是null。

递归

递归的概述

递归指的是方法中调用方法本身的现象
image.png

递归解决问题的思路

分治思想,就是“分而治之”,把一个问题转化为若干个与原问题相似的规模较小的问题来求解。
递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算。

递归解决问题要找到两个内容:

递归出口:否则会出现内存溢出
递归规则:与原问题相似的规模较小的问题

IO流

IO流的概述和分类

以前是如何存储数据的

.image.png

不能永久化存储,只要代码运行结束,所有数据都会丢失。

IO流介绍

IO流的概念

I表示 Intput,输入。
O表示 Output,输出。

IO流的作用

输入流:读取文件中已经存在的数据到程序中。
输出流:将内存数据写到文件中,实现数据永久化存储。

输入输出流介绍

image.png

image.png

按数据类型分

image.png
image.png

顶级父类

这些顶级父类都是抽象的
image.png

常用IO类的继承关系

image.png

字节流

一切皆为字节

一切文件数据(文本、图片、视频等)在存储时,都是以二进制数字的形式保存,都一个一个的字节,那么传输时一样
如此。所以,字节流可以传输任意文件数据。在操作流的时候,我们要时刻明确,无论使用什么样的流对象,底层传
输的始终为二进制数据。

字节流写数据API

字节输出流的顶级父类OutputStream是抽象的, 我们可以使用它的子类FileOutputStream操作文件
image.png

字节流写一个数据

字节输出流的顶级父类OutputStream是抽象的, 我们可以使用它的子类FileOutputStream操作文件
image.png

image.png

字节流写数据的步骤
1.创建字节输出流对象
2.写数据
3.释放资源

字节流写数据说明

IO流类似水流,当创建IO流后,相当于程序和文件建立了管道
image.png

字节流写多个数据

image.png
image.png

数据追加续写和换行

image.png
换行符
windows:\r\n
linux:\n
mac:\rimage.png

String和byte数组转换API

image.png
image.png

字节流读数据API

字节输入流的顶级父类InputStream是抽象的, 我们可以使用它的子类FileInputStream操作文件。
image.png