File类

为了很方便的代表文件的概念,以及存储一些对于文件的基本操作,在java.io包中设计了一个专门的类——File类。

文件和目录(文件夹)路径名的抽象表示形式。

构造方法

File(String pathname)//根据一个路径得到File对象
File(String parent, String child)//根据一个目录和一个子文件/目录得到File对象
File(File parent, String child)//根据一个父File对象和一个子文件/目录得到File对象

创建方法

boolean createNewFile()//创建文件,如果存在这样的文件,就不创建了
boolean mkdir()//创建文件夹,如果存在这样的文件夹,就不创建了
boolean mkdirs()//创建文件夹,如果父文件夹不存在,会帮你创建出来,可以一次生成多个层次的子目录
注意:如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下。

删除方法

boolean delete()
注意:Java中的删除不走回收站。
    要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹。

重命名方法

boolean renameTo(File dest)
注意:如果路径名相同,就是改名。
    如果路径名不同,就是改名并剪切。

判断方法

boolean isDirectory()//判断是否是目录
boolean isFile()//判断是否是文件
boolean exists()//判断是否存在
boolean canRead()//判断是否可读
boolean canWrite()//判断是否可写
boolean isHidden()//判断是否隐藏

基本获取方法

String getAbsolutePath()//获取绝对路径
String getPath()//获取相对路径
String getName()//获取名称
long length()//获取长度,字节数
long lastModified()//获取最后一次的修改时间,毫秒值

高级获取方法

String[] list()//获取指定目录下的所有文件或者文件夹的名称数组
File[] listFiles()//获取指定目录下的所有文件或者文件夹的File数组

文件名称过滤器

public String[] list(FilenameFilter filter)
public File[] listFiles(FilenameFilter filter)

绝对路径和相对路径

绝对路径:路径以盘符开始 c:\\a.txt

相对路径:路径不以盘符开始 a.txt

分隔符

不同的操作系统中路径的分隔符是不一样的:

windows下,分隔符是“\”。

linux下,分隔符是“/”。

注意:Java本身是具备高的可移植性的,那么这样一来就要求程序可以适应各个操作系统平台的要求,则以上的写法就不合适了,因为固定了操作平台。那么此时,在编写IO操作的时候一定要注意,所有的分隔符需要使用separator进行指定。

例如:
File file = new File("d:\\test.txt");
相当于
File file = new File("d:" + File.separator + " test.txt ");

递归

方法定义中调用方法本身的现象。

Math.max(Math.max(a,b),c);//方法的嵌套调用,这不是递归。

注意

递归一定要有出口,否则就是死递归;

递归的次数不能太多,否则就内存溢出;

构造方法不能递归使用。

思想

先分解,再合并

  1. 写一个方法
  2. 出口条件
  3. 规律
实现5的阶乘
public class Demo {
	public static void main(String[] args) {
         System.out.println(JieCheng(5));
	}
	// 递归计算阶乘
	public static int JieCheng(int n) {
        if (n == 1) {
            return 1;
        } else {
            return n * JieCheng(n - 1); // 自己调用自己
       }
    }
}