File:
* 文件: file, 用来存储具体的数据的.
* 目录(文件夹): directory, 用来存储文件或者文件夹
* 路径: path, 表示文件或者文件夹的位置
*
* File类: 用来表示文件或者文件夹在电脑或者项目中的位置的类;与系统环境无关(平台无关性,在任何平台使用是一样的步骤)
* 1. 导入包, import java.io.File;
* 2. 获取对象,构造方法
* 3. 使用,成员方法,成员变量
*
* 静态成员变量
* File.pathSeparator; 表示路径与路径之间的分隔符
* File.separator; 文件夹和文件或者文件夹之间的分割
* File类的构造方法:
* 1. public File(String pathName); 根据一个字符串路径创建对象
* 2. public File(String parent, String child); 根据两个字符串路径创建对象
* 3. public File(File parent, String child); 根据file对象和字符串子路径创建对象
*
* 路径分为两种:
* 相对路径: 以文件夹作为基准, java\\aaa bbb\\aaa
* 绝对路径: 以电脑的盘符作为基准, 比如: C:\\Users\\sszz\\Desktop
*
* 注意点:
* 1. 如果文件之间的分割是以反斜杠作为分割,需要写上两个反斜杠\\, 如果以正斜杠,只需要写一个即可 /
* 2. File对象进行输出的时候不是地址值,说明已经覆盖了Object中的toString方法, JDK中的大部分类都这样
* 3. 使用File去创建对象的时候仅仅是,以字符串构建了一个路径而已,无所谓字符串路径存不存在.
* File类中常用方法之创建方法;
* 1. public boolean creatNewFile(); 创建一个文件,如果文件存在不能创建,不存在则创建成功
* 2. public boolean mkdir(); 创建一个单级文件夹(目录)
* 3. public boolean mkdirs(); 创建多级文件夹, 可以代替上面的创建单级的方法
*
* 注意: 不能以文件是否有后缀来区分是否是文件或者文件夹
* File类中的成员方法之判断方法:
* 1. public boolean exists(); 判断文件或者文件夹是否存在
* 2. public boolean isFile(); 判断是否是文件
* 3. public boolean isDirectory(); 判断文件夹
* File类的成员方法之获取方法:
* 1. public String getName(); 获取文件或者文件夹的名字
* 2. public String getPath(); 获取文件或者文件夹的路径
* 3. public long length(); 文件的字节大小
* 4. public String getParent(); 获取文件或者文件夹的父路径
* 5. public File getParentFile(); 获取文件或者文件夹的父路径,以File形式返回
* 6. public String getAbsolutePath(); 获取绝对路径
* 7. public File getAbsoluteFile(); 获取绝对路径, 以File形式返回
* File类中的获取列表的方法:
* 1. public static File[] listRoots(); 获取所有的根目录(盘符)
* 2. public String[] list(); 获取到对象中路径下所有的文件或者文件夹的名字
* 3. public File[] listFiles(); 获取到对象中路径下的所有文件或者文件夹,全路径
*
* 可以使用增强for的容器:
* 1. 数组
* 2. Collection集合体系
*********** * 使用过滤器,获取指定的文件
* File类中的过滤器方法:
* public File[] listFiles(FileFilter filter); 传入一个过滤器参数进行
*
* FileFilter是一个接口,不能直接创建对象,有两种使用使用方式:
* 1. 定义一个实现类, 重写接口中的抽象方法
* a.定义一个类, 实现FileFilter接口
* b.重写accept抽象方法
* c.在accept中编写过滤逻辑
*
* 2. 使用这个接口的匿名内部类
* a. 创建一个匿名内部类,FileFilter的
* b. 重写accept方法
* c. 在accept方法中编写过滤逻辑
*
*
* 匿名内部类的格式:
* 接口/抽象类 变量名 = new 接口/抽象类(){
* // 重写接口或者是抽象类中的抽象方法
* };
* File类中的成员方法之删除方法
* 1. public boolean delete(); 删除文件或者文件夹
*
*
* 注意点:
* 1.如果文件夹中还有内容,不能删除
* 2.删除的过程不走回收站,操作需谨慎!
* 递归: 并不是一个开发技术, 而是一种编程经验
* 代码解释: 方法自己调用自己, 一旦调用的层级结构过深之后,容易出现栈内存溢出: StackOverflowError
package cn.itcast.demo01; import java.io.File; /* * 使用递归方式,求: 1+2+3...+100的和! * * 练习: * 使用递归的方式求: 10! = 10*9*8*7*....*1 */ public class Demo12DiGuiPractice { public static void main(String[] args) { // 普通方式求100的和 System.out.println(getSum(100)); // 使用递归方式求1-100的和 System.out.println(getSum2(100)); // 使用递归方式求1*2*3*..10的积 System.out.println(getJieCheng(10)); } /* * 使用递归的方式求: 10! = 10*9*8*7*....*1 */ public static int getJieCheng(int n){ return n ==1 ? 1 : n*getJieCheng(n-1); } /* * 使用递归方式求出: 1+2+3...+100的和! * 100 + (100-1) + (99-1) + (98-1) +....1 */ public static int getSum2(int n){ if(n == 1){ return 1; }else{ return n + getSum2(n-1); } } // 普通方式实现求和 public static int getSum(int n){ int sum = 0; for (int i = 1; i <= n; i++) { sum += i; } return sum; } }