1.File:文件和目录路径名的抽象表示。
2.绝对路径:带盘符的路径.
相对路径:相对某个文件或文件夹而言的路径.
当参考的文件与文件夹与当前的文件或文件夹在同一个盘符时:绝对路径!=相对路径.
当参考的文件与文件夹与当前的文件或文件夹不在同一个盘符时:绝对路径==相对路 径.
根路径:相对当前项目来说的路径.
3.File类的常用方法
eg:public static void main(String[] args) {
//创建文件对象
File f1=new File("a.txt");
System.out.println("绝对路径:"+f1.getAbsolutePath());
System.out.println("相对路径:"+f1.getPath());
System.out.println("文件名:"+f1.getName());
System.out.println("是否可读:"+f1.canRead());
System.out.println("是否可写:"+f1.canWrite());
System.out.println("是否隐藏:"+f1.isHidden());
System.out.println("文件内容长度:"+f1.length());
System.out.println("最后一次修改时间:"+f1.lastModified());
}
public static void main(String[] args) throws IOException {
//创建文件对象 第一个值文件名路径 第二个值文件名 File.separator \
File f1=new File("c1"+File.separator+"cc"+File.separator+"c.txt");
//判断文件是否存在
if (f1.exists()) {//存在
System.out.println("文件存在");
}else {
System.out.println("文件不存在");
//获得当前文件的父目录
File parentFile=f1.getParentFile();
if (!parentFile.exists()) {//父目录不存在
//创建父目录
//parentFile.mkdir();//创建一级目录
parentFile.mkdirs();//创建多级目录
System.out.println("父目录创建成功");
}
//判断子文件是否存在
if (!f1.exists()) {
//创建文件
f1.createNewFile();
System.out.println("文件创建成功");
}
}
}
public static void main(String[] args) throws IOException {
//创建文件对象
File f1=new File("aa");
//判断当前的File对象 是否是文件夹
if (f1.isDirectory()) {//目录
//获得当前目录的子文件和子目录
File[] f1List=f1.listFiles();
if (f1List.length!=0) {
//遍历子文件和子目录,输出名称
for (File f2 : f1List) {
//获得文件名,并判断是否是以.txt结尾的
if (f2.getName().endsWith(".txt")) {
System.out.println(f2.getName());
}
}
}else {
System.out.println("当前文件夹是一个空文件夹");
}
}else {
System.out.println("当前对象是文件");
}
}
4.递归:方法自身调用自身.
4.1:当一个问题可以拆分为若干个子问题,且子问题的解决方法与原问题一样.
4.2:原问题的解决依赖于所有子问题的解决.
4.3:递归一定要有出口.
eg:public static void main(String[] args) throws IOException {
//创建文件对象
File f1=new File("aa");
//判断当前的File对象 是否是文件夹
if (f1.isDirectory()) {//目录
isDirectory(f1);
}else {
System.out.println("当前对象是文件");
}
}
/**
* 获得当前文件夹下面的所有子文件和子目录
*/
public static void isDirectory(File f1) {
//获得当前目录的子文件和子目录
File[] f1List=f1.listFiles();
if (f1List.length!=0) {
//遍历子文件和子目录,输出名称
for (File f2 : f1List) {
判断当前对象是否是文件,如果是文件,并判断是否是以.txt结尾的
if (f2.isFile()&&f2.getName().endsWith(".txt")) {
System.out.println(f2.getName());
}else if(f2.isDirectory()) {//是目录
isDirectory(f2);
}
}
}
}