IO流-1
1. File
1.1 概述
File对象主要是用来表示文件或者是目录的路径的。类中提供了很多对文件或者文件夹操作的常用方法。
1.2 创建对象
- 绝对路径
以磁盘名开头的路径。例如:D:\Program Files\Java\jdk1.8.0_172 - 相对路径
不是以盘符开头的,相对于当前项目下的路径。例如: a.txt
File(String pathname) //通过字符串类型的路径来创建对象File(String parent, String child) //通过父目录的路径(字符串类型)和文件(文件夹)名称来创建对象File(File parent, String child)//通过父目录的路径(File类型)和文件(文件夹)名称来创建对象
1.3 常用方法
boolean createNewFile()//根据路径创建一个文件,返回值代表创建是否成功boolean mkdir() //根据路径创建一个文件夹,返回值代表创建是否成功boolean mkdirs() //根据路径创建一个文件夹,如果父目录不存在会自动创建父目录boolean exists() //判断文件或者文件夹是否存在boolean isFile() //判断是否是一个文件boolean isDirectory() //判断是否是一个文件夹boolean delete() //删除文件,或者删除空文件夹,返回值代表删除是否成功long length() //获取一个文件的大小,对文件夹无意义String getName()//获取文件或文件夹的名字File getParentFile() //获取父目录的File对象String getAbsolutePath()//获取File对象的绝对路径
1.4 重要方法
File[] listFiles() //如果当前File对象是一个文件夹,可以获取文件夹下的所有文件或者文件夹的File对象。
注意:如果不是文件夹或者是文件夹的权限受限返回值是null。所以一定要对返回结果做非空判断。
public static void main(String[] args) {File dir = new File("C:\\Users\\root\\Desktop\\test\\a.txt");File[] files = dir.listFiles();if(files!=null){for (File file : files) {System.out.println(file);}}}
2. 递归
在方法中调用方法本身就是递归。
例如
public int f(int n){if(n==1){return 1;}return n*f(n-1);}
**注意:我们在使用递归的过程中一定要保证递归能结束,不能无限递归下去不然会出现栈溢出(StackOverflowError)的情况 。**
小结:如果既可以用递归解决又可以用循环解决。我们一般用循环解决。
