- File类概述和其构造方法
- File类创建功能
- File类判断和获取功能
- File删除功能
- 递归解决问题思想
- 使用递归遍历目录
File类:
他是文件和目录路径名的抽象表示
- 文件和目录是可以通过File封装成对象的
- 对于File而言,其封装的并不是正真的文件,仅仅是一个路径名而已。它可以存在,也可以不存在。将来是要通过具体的操作把这个路径的内容转换为具体的存在。
package com.lxg.io.file;
import java.io.File;
public class File1 {
public static void main(String[] args) {
//File(String pathbname) 通过将给定的路径名字符串来转换为抽象路径名来创建新的File实例
File file1 = new File("E:\IO\text1.txt");
System.out.println(file1);
//File(String parent,String child):从父路径名字符串和子路径名字符串来创建新的File类
File file2 = new File("E:\IO","test2.txt");
System.out.println(file2);
//File(File parent,String child):从父路径名和子路径名创建新的File实例
File file3 = new File("E:\IO");
File file4 = new File(file3,"test3.txt");
System.out.println(file4);
}
}
File类创建功能
package com.lxg.io.file;
import java.io.File;
import java.io.IOException;
public class File2 {
public static void main(String[] args) throws IOException {
//File f = new File("E:\IO");
//当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空文件,如果文件不存在则创建,
// 返回true,如果文件存在,则返回false
//f.createNewFile();
//创建由此抽象路径命名的目录
//f.mkdir();
//创建由此抽象路径命名的目录,包括任何必须但不存在的目录,创建多级目录
//f.mkdirs();
//获取绝对路径
//f.getAbsolutePath();
//-------------------------------------------------
//创建文件
File f1 = new File("E:\IO\java.txt");
boolean newFile = f1.createNewFile();
System.out.println(newFile);
//创建目录
File f2 = new File("E:\IO\JavaSE");
boolean mkdir = f2.mkdir();
System.out.println(mkdir);
//创建多级目录
File f3 = new File("E:\IO\JavaWeb\HTML");
boolean mkdirs = f3.mkdirs();
System.out.println(mkdirs);
}
}
File类判断和获取功能
package com.lxg.io.file;
import java.io.File;
public class File3 {
public static void main(String[] args) {
File f = new File("E:\IO");
//判断是否为目录
boolean directory = f.isDirectory();
//判断是否为文件
boolean file = f.isFile();
//判断是否存在
boolean exists = f.exists();
//获取绝对路径
String absolutePath = f.getAbsolutePath();
//将抽象路径名转换为路径名字字符串
String path = f.getPath();
//返回此抽象路名名表示的文件或目录名称
String name = f.getName();
//返回此路径名表示的目录中的文件和目录的名称字符串数组
String[] list = f.list();
//返回子路径名表示的目录中的文件和目录的file对象数组
File[] files = f.listFiles();
}
}
File删除功能
package com.lxg.io.file;
import java.io.File;
import java.io.IOException;
public class File4 {
public static void main(String[] args) throws IOException {
//File f = new File("E:\IO");
//删除由此抽象路径表示的文件或目录
//boolean delete = f.delete();
//创建&删除文件
File f = new File("Java\java.txt");
boolean newFile = f.createNewFile();
boolean delete = f.delete();
//创建目录&删除目录
File f2 = new File("Java\a");
boolean mkdir = f2.mkdir();
boolean delete1 = f2.delete();
}
}
递归解决问题思想
package com.lxg.io.file;
public class File5 {
public static void main(String[] args) {
System.out.println(f(20));
System.out.println(jiecheng(5));
}
public static int jiecheng(int n){
if(n==1){
return 1;
}else{
return n*jiecheng(n-1);
}
}
public static int f(int n){
if(n==1 || n==2){
return 1;
}else{
return f(n-1)+f(n-2);
}
}
}
使用递归遍历目录
package com.lxg.io.file;
import java.io.File;
public class File6 {
public static void main(String[] args) {
File f= new File("E:\IO");
getAllFilePath(f);
}
public static void getAllFilePath(File srcFile){
//获取给定目录下的所有文件后者目录的数组
File[] files = srcFile.listFiles();
//遍历该数组,得到每一个file对象
if(files!=null){
for (File f:files) {
//判断是否是目录
if(f.isDirectory()){
//是,递归掉用方法
getAllFilePath(f);
}else {
//不是,输出文件路径
System.out.println(f.getAbsoluteFile());
}
}
}
}
}



