目录
知识点
1.File表示什么
File对象表示路径,可以是文件、也可以是文件夹。这个路径可以是存在的,也可以是不存在的
2.绝对路径和相对路径是什么意思
绝对路径是带盘符的,相对路径是不带盘符的,默认到当前项目下去找
3.File三种构造方法
public File(String pathname)把字符串表示的路径变成File对象
public File(String parent,String child)把父级路径和子级路径进行拼接
public File(File parent,String child)把父级路径和子级路径进行拼接
4.File的常见成员方法(判断返回)
方法名称 | 说明 |
---|---|
public boolean isDirectory() | 判断此路径名表示的File是否为文件夹 |
public boolean isFile() | 判断此路径名表示的File是否为文件 |
public boolean exists() | 判断此路径名表示的File是否存在 |
public long length | 返回文件的大小(字节数量) |
public String getAbsoulutePath() | 返回文件的绝对路径 |
public String getPath() | 返回定义文件时使用的路径 |
public String getName() | 返回文件的名称,带后缀 |
public long lastModified() | 返回文件的最后修改时间(时间毫秒值) |
5.File的常见成员方法(创建删除)
方法名称 | 说明 |
---|---|
public boolean createNewFile() | 创建一个新的空的文件 |
public boolean mkdir() | 创建单级文件夹 |
public boolean mkdirs() | 创建多级文件夹 |
public boolean delete() | 删除文件、空文件夹 |
6.File的常见成员方法(简单遍历)
方法名称 | 说明 |
---|---|
public File[] listFiles() | 获取当前该路径下所有内容 |
当调用者File表示的路径不存在时,返回null
当调用者File表示的路径是文件时,返回null
当调用者File表示的路径是空文件夹时,返回一个长度为0的数组
当调用者File表示的路径是非空件夹时,将里面所有文件和文件夹路径放在File数组中(包括隐藏文件)
当调用者File表示的路径需要权限才能访问,返回null
7.File的常见成员方法(遍历)
方法名称 | 说明 |
---|---|
public static File[] listRoots() | 列出可用的文件系统根 |
public String[] list() | 获取当前路径下所有内容 |
publc String[] list(FilenameFilter filter) | 利用文件名过滤器获取当前路径下所有内容 |
public File[] listFiles() | 获取当前路径下所有内容 |
public File[] listFiles(FileFilter filter) | 利用文件过滤器获取当前路径下所有内容 |
public File[] listFiles(FilenameFilter filter) | 利用文件过滤器获取当前路径下所有内容 |
代码实现
1.File三种构造方法
package filetest1;
import java.io.File;
public class FileDemo {
public static void main(String[] args) {
//File对象的三种构造方法
String str="C:\\Users\\Public\\Desktop\\IntelliJ IDEA Community Edition 2022.2.2.lnk";
File f1=new File(str);
System.out.println(f1);
String parent="C:\\Users\\Public\\Desktop";
String child="IntelliJ IDEA Community Edition 2022.2.2.lnk";
File f2=new File(parent,child);
System.out.println(f2);
File parentFile=new File(parent);
File f3=new File(parentFile,child);
System.out.println(f3);
}
}
2.File的常见成员方法(判断返回)
package filetest2;
import java.awt.*;
import java.io.File;
import java.text.SimpleDateFormat;
public class FileDemo {
public static void main(String[] args) {
File f1=new File("C:\\Users\\Public\\Desktop\\IntelliJ IDEA Community Edition 2022.2.2.lnk");
System.out.println(f1.isFile());//是否文件
System.out.println(f1.isDirectory());//是否文件夹
System.out.println(f1.exists());//是否存在
System.out.println(f1.length()+"字节");//文件大小(无法获取文件夹大小)
System.out.println(f1.getAbsolutePath());//返回绝对路径
System.out.println(f1.getPath());//返回定义文件时的路径
System.out.println(f1.getName());//返回文件名(带后缀名)
System.out.println(f1.lastModified());//返回文件最后修改时间
new SimpleDateFormat();
}
}
3.File的常见成员方法(创建删除)
package filetest3;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
public class FileDemo {
public static void main(String[] args) throws IOException {
File f1=new File("G:\\JavaProgram\\java\\src\\filetest3\\file.txt");
System.out.println(f1.createNewFile());//创建文件
File f2=new File("G:\\JavaProgram\\java\\src\\filetest3\\directory1");
System.out.println(f2.mkdir());//创建单级文件夹
File f3=new File("G:\\JavaProgram\\java\\src\\filetest3\\directory2\\directory3");
System.out.println(f3.mkdirs());//创建多级文件夹
File f4=new File("G:\\JavaProgram\\java\\src\\filetest3");//非空文件夹
System.out.println(f1.delete());//如果删除的是文件则直接删除,不进入回收站
System.out.println(f2.delete());//如果删除的是空文件夹则直接删除,不进入回收站
System.out.println(f4.delete());//如果删除的是非空文件夹则删除失败
//new File("G:\\JavaProgram\\java\\src\\filetest3\\directory2\\directory3").delete();
//new File("G:\\JavaProgram\\java\\src\\filetest3\\directory2").delete();
}
}
4.File的常见成员方法(简单遍历)
package filetest4;
import java.io.File;
import java.text.SimpleDateFormat;
public class FileDemo {
public static void main(String[] args) {
File f1 = new File("G:\\JavaProgram\\java\\src\\filetest4");
File[] files = f1.listFiles();
for (File file : files) {//循环从files数组中取出file
System.out.println(file);
}
}
}
5.File的常见成员方法(遍历)
package filetest5;
import java.io.*;
import java.util.Arrays;
public class FileDemo {
public static void main(String[] args) {
//获取系统所有盘符
File[] arr1=File.listRoots();
System.out.println(Arrays.toString(arr1));
//获取当前路径下所有内容
File f1=new File("src\\filetest5");
String[] arr2=f1.list();
for (String s:arr2){
System.out.println(s);
}
//获取当前路径下文件过滤器后的内容(FilenameFilter)
File f2=new File("src\\filetest5");
File[] arr3=f2.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir,String name) {
File src=new File(dir,name);
return src.isFile()&&name.endsWith(".txt");
}
});
for (File f:arr3){
System.out.println(f);
}
//获取当前路径下文件过滤器后的内容(FileFilter)
File f3=new File("src\\filetest5");
File[] arr4=f3.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.isFile()&&pathname.getName().endsWith(".txt");
}
});
for (File f:arr4){
System.out.println(f);
}
}
}