File类的概念
阅读其描述:File文件和目录路径名的抽象表示形式。
即,Java中把文件或者目录(文件夹)都封装成File对象。
也就是说如果我们要去操作硬盘上的文件,或者文件夹只要找到File这个类即可。
public static void main(String[] args) {
//查找文件
File file = new File("D:\\other\\test.txt");
//查找文件夹
File dir = new File("D:\\other");
}
相对路径与绝对路径
绝对路径:从盘符开始到文件的路径
相对路径:从某个参照路径开始到指定文件所经过的路径
public static void main(String[]args){
//通过绝对路径在Eclipse中的某个项目当中创建一个文件对象
//"D:/javaadvanced1_workspace/javaadvanced1_d05_c04/a/b/test
.txt"
Filefile=newFile("D:test.txt");
//通过相对路径在Eclipse中的某个项目当中创建一个文件对象
//"a/b/test.txt"
Filefile2=newFile("a/b/test.txt");
//获取文件大小,判断文件是否为test.txt
System.out.println(file.length());
System.out.println(file2.length());
//new出来的File只是映射,并不能创建文件,如果创建文件先要file.exsits判断文件是否存在,如果不存在就用file.createNewFile()
}
File类中的构造方法
public File(String parent, String child):parent指的是父级目录,child指的是子级目录
public File(File parent, String child) :parent为File类型,为了使用File类中的方法
public static void main(String[]args){
//通过父亲与孩子的构造方法创建test.txt对应的文件对象
Filefile=newFile("a/b","test.txt");
System.out.println(file.length());
//通过父亲与孩子的构造方法创建a文件夹下的b文件夹对应的文件对
象
Filedie=newFile("a","b");
}
File类的获取方法
public String getAbsolutePath() 获取绝对路径
public String getPath() 获取路径(用什么方式创建的对象,就返回什么方式的路径(绝对路径/相对路径))
public String getName() 获取文件/文件夹的名称
public String getParent() 返回所在文件夹路径(根据创建对象时是否为绝对路径/相对路径)
File类的创建与删除方法
public boolean delete() 删除文件
public boolean createNewFile() throws IOException 创建文件
在创建文件时,如果文件所在的文件夹不存在,则报错系统找不到指定的路径.创建文件时,必须确保文件夹已经存在
public boolean mkdir() 使用mkdir方法创建文件夹时,必须保证其所在文件夹已经存在,否则创建失败(不会报错)
public boolean mkdirs() 一次性创建多级目录
public boolean delete() 删除文件夹不能为非空(有东西),否则删除失败
public static void main(String[]args)throwsIOException{
Filefile=newFile("a/b/test.txt");
//删除文件
System.out.println(file.getPath()+"的删除结果:"+file.delete
());
//创建文件
System.out.println(file.getPath()+"的创建结果:"+file
.createNewFile());
//在创建文件时,如果文件所在的文件夹不存在
,则报错系统找不到指定的路径.创建文件时
,必须确保文件夹已经存在
//Filefile2=newFile("c/d/test.txt");
//System.out.println(file2.createNewFile());
System.out.println("==========================");
//创建文件夹
Filedir=newFile("c/d");
//必须保证其所在文件夹已经存在,否则创建失败(不会报错)
System.out.println(dir.mkdir());
//一次性创建多级目录
System.out.println(dir.mkdirs());
Filedir2=newFile("e1/e2");
//必须保证其所在文件夹已经存在,否则创建失败(不会报错)
System.out.println(dir2.mkdir());
System.out.println("==========================");
//删除文件夹
System.out.println(dir2.delete());
//删除文件夹不能为非空(有东西),否则删除失败
Filedir3=newFile("a/b");
System.out.println(dir3.delete());
}
File类的判断方法
public boolean exists() 文件或者文件夹是否存在
public boolean isDirectory() 判断文件对象是否为文件夹
public boolean isFile() 判断文件对象是否为文件
public static void main(String[]args){
Filefile=newFile("D:/test.txt");
Filefile2=newFile("a/b/c.txt");
Filedir=newFile("c/d");
Filedir2=newFile("e1/e2");
//判断文件和文件夹是否存在
System.out.println(file.exists());
System.out.println(file2.exists());
System.out.println(dir.exists());
System.out.println(dir2.exists());
System.out.println("================================");
//判断文件对象是否为文件夹/文件
System.out.println(file.isDirectory());
System.out.println(file.isFile());
System.out.println(dir.isDirectory());
System.out.println(dir.isFile());
System.out.println("=================================");
//如果是不存在的文件或者文件夹,则判断是否为文件或文件夹时一律报false
System.out.println(file2.isFile());
System.out.println(dir2.isDirectory());
}
File类的listFiles方法
public File[] listFiles() 获取调用方法文件夹下的所有file对象(文件或文件夹)
public static void main(String[]args){
//创建文件对象
Filedir=newFile("./");
//获取该文件对象下的所有文件
File[]fileDirs=dir.listFiles();
for(Filefiles:fileDirs){
System.out.println(files);
}
}