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)的情况 。**
小结:如果既可以用递归解决又可以用循环解决。我们一般用循环解决。