一、File类
1. 什么是API
API:应用程序接口,java中所有系统定义的接口和类全部在API中;
- Java的核心库java.io提供了全面的IO接口。包括:文件读写、标准设备输出等。
- Java中IO是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。
- 在java中,不管是文件还是文件夹都是叫做File对象File类只用于表示文件(目录)的信息(名称/大小等), 不能用于文件内容的访问。
2. File类
描述:所属io包,File是文件和文件夹的抽象形式,java把电脑中的文件封装为一个File类。 作用:用来操作硬盘上的文件和文件夹
2.1File构造方法
File( String pathname ) :
- 根据文件路径字符串创建文件对象 File(File parent , String child);
- 根据父路径和子路径字符串创建文件对象
2.2 .创建文夹功能boolean.createNewFile();
- 根据文件路径创建文件对象
- 如果文件存在什么都不做,返回false,则反之…
- 只能用来创建文件
2.3 创建文件夹功能boolean.mkdir();
- 只能创建单级文件夹
- 只能用来创建文件夹
- boolean.mkdirs(); 可以创建单级和多级文件夹
2.4.删除功能boolean.delete();
如果删除的是文件夹,则文件必须是空文件夹否则不能删除
3. File获取功能
(1)long length() :获取文件大小
(2)String getName() :获取文件夹和文件名字
(3)String geiParent() : 获取父路径字符串
(4)File getParentFile() :获取父路径文件对象
(5)String getAbsolutePath : 获取绝对路径字符串
(6)long lastModified() :获取文件最后的修改时间
4. File判断功能
(1)boolean exists() :判断文件或文件夹是否存在
(2)boolean isFile() : 判断是否是文件
(3)boolean isDirectory() :判断是否是文件夹
(4)boolean isHidden() :判断是否是隐藏文夹
5. List获取功能
(1) S tring list() :获取文件下面所有的文件名字
(2) F ile[] lsitFiles() :获取当前文件夹下的所有文件对象;
(3) String listRoots() :获取当前系统的盘符
6. File类使用实例
import java.io.File; public class FileOperations { public static void main(String[] args) { // 指定一个文件路径 String filePath = "C:/example.txt"; // 创建一个JavaApiFile对象 File file = new File(filePath); // 检查文件是否存在 if (file.exists()) { System.out.println("文件名:" + file.getName()); System.out.println("文件路径:" + file.getPath()); // 如果是文件而不是目录,则打印文件大小 if (file.isFile()) { System.out.println("文件大小:" + file.length() + "字节"); } } else { System.out.println("文件不存在。"); } } }
其他方法就不一一列举,自行实践🫰
二、递归算法
概述:方法自身调用自己就称为递归
递归的分类:
- 直接递归:方法A调用方法A
- 间接递归:方法A 调用方法B
主意: 1. 递归必须有出口(结束递归的条件)
2. 构造方法不能使用递归
三、扩展内容
1.文件选择器(FileChooser)
概述:打开文件或文件夹、保存文夹或文件夹;
常用的方法:
- setFileSelectionMode( int mode ) : 设置用户只能选择文件或目录
- showOpenDialog(stage) : 弹出一个打开文件对话框
- showSaveDialog(stage) : 弹出一个保存文件对话框
- setMusltiSelectionEnabled(boolean b ) :设置文件选择器,允许选择多个文件
2.Calendar 日历类 :
Calendar cd = Calendar.getInstance();
- 把 l ong类型的最后修改时间转为Date类型 Date fileTime = cd.getTime();
- 获取当前日期 cd.setTime(new Date());
- 当前日期减去1个月,即一个月之前的时间cd.add(Calendar.MONTH,-1)
- 获取Date类型的一个月前的日期 Date lastMonth = cd.getTime();
3. 位、字节、字符
1. 字节(Byte)是计量单位,表示数据量多少,是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节 等于八位。
2.字符(Character)计算机中使用的字母、数字、字和符号,比如’A’、‘B’、’$’、’&'等。一般在英文状态下一 个字母或字符占用一个字节,一个汉字用两个字节表示。
4. 字节与字符
- ASCII 码中,一个英文字母(不分大小写)为一个字节,一个中文汉字为两个字节。
- UTF-8 编码中,一个英文字为一个字节,一个中文为三个字节。
- Unicode 编码中,一个英文为一个字节,一个中文为两个字节。
- 符号:英文标点为一个字节,中文标点为两个字节。例如:英文句号. 占1个字节的大小,中文句号 。占2个字节的 大小。
- UTF-16 编码中,一个英文字母字符或一个汉字字符存储都需要2 个字节(Unicode 扩展区的一些汉字存储需要4 个 字节)。
- UTF-32 编码中,世界上任何字符的存储都需要4 个字节。