File类概述:文件和目录路径名的抽象表示。
三种构造方法:
作用:获得所输入的路径
public static void main(String[] args) {
File f1 = new File("F:\\testFile\\java.txt");
System.out.println(f1);
File f2 = new File("F:\\testFile","java.txt");
System.out.println(f2);
File f3 = new File("F:\\testFile");
File f4 = new File(f3,"java.txt");
System.out.println(f4);
//输出结果:
// F:\testFile\java.txt
// F:\testFile\java.txt
// F:\testFile\java.txt
}
常用方法:
创建方法:
boolean createNewFile()
public boolean mkdir()
public boolean mkdirs()
代码实例:
public static void main(String[] args) throws IOException {
// 1.在E盘下创建testFile文件夹
File f1 = new File("E:\\testFile");
System.out.println(f1.mkdir());
// 2.在E:\testFile下创建hello.txt
File f2 = new File("E:\\testFile\\hello.txt");
System.out.println(f2.createNewFile());
// 3.在E:\testFile下创建hello\world多级目录
File f3 = new File("E:\\testFile\\hello\\world");
System.out.println(f3.mkdirs());
}
注意事项:在同一级目录下,不能够创建相同名称的目录或文件,否则创建不成功
如在testFile中已经有了hello.txt文件,哪怕是创建一个hello.txt的目录,也不成功。
判断方法:
1.是否是目录
public boolean isDirectory()
2.是否是文件
public boolean isFile()
3.是否存在文件或目录
public boolean exists()
代码实例:
public static void main(String[] args) {
//判断E盘testFile目录
File f1 = new File("E:\\testFile");
System.out.println(f1.isDirectory());//true
System.out.println(f1.isFile());//false
System.out.println(f1.exists());//true
}
删除方法:
1.删除路径下的文件或目录
boolean deleate()
路径相关方法:
1.返回绝对路径
String getAbsolutePath()
2返回路径名
String getPath()
3.返回文件或者目录名称
String getName()
代码实例:
public static void main(String[] args) {
//E盘testFile目录
File f1 = new File("hello\\world");
System.out.println(f1.getAbsolutePath());
System.out.println(f1.getPath());
System.out.println(f1.getName());
}
//结果:
//D:\java-workspace\java-demo\hello\world
//hello\world
//world
getpath和getabsolutepath的区别:
getAbsolutePath得到的是全路径。如果构造参数是相对路径,则返回当前目录的绝对路径+构造参数路径;如果是绝对路径则直接返回;
getPath得到的是构造参数的路径,也就是你传进去的路径
对File的遍历:
1.返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。
String[] list()
2.返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件。
File[] listFiles()
代码实例:
public static void main(String[] args) {
//E盘testFile目录
File f1 = new File("E:\\testFile");
String[] flist = f1.list();
System.out.println(flist);
for (String fs : flist) {
System.out.println(fs);
}
File[] fa = f1.listFiles();
System.out.println(fa);
for (File f : fa) {
System.out.println(f);
}
// 输出结果:
// [Ljava.lang.String;@7ef20235
// hello
// hello.txt
// [Ljava.io.File;@27d6c5e0
// E:\testFile\hello
// E:\testFile\hello.txt
}
案例:对给定目录下的所有内容遍历:
public static void main(String[] args) {
//E盘testFile目录,创建File对象
File file = new File("E:\\testfile");
getall(file);
}
public static void getall(File file){
File[] files = file.listFiles();//获得当前目录下的所有内容
if(files!=null){//判断当前目录下的内容是否为空
for(File f:files){
if(f.isDirectory()){
getall(f);
}else if(f.isFile()){
System.out.println(f.getAbsoluteFile());
}
}
}
}