File类概述
Fail是文件和目录路径名的抽象表示形式,File类既能用来表示文件,也能用来表示目录。
方法 | 功能 |
---|
File(String pathname) | 根据一个路径得到File对象 |
File(String parent, String child) | 根据一个目录和一个子文件/目录得到File对象 |
File(File parent, String child) | 根据一个父File对象和一个子文件/目录得到File对象 |
File file1 = new File("C:\\Users\\Public\\Desktop\\Java课程");
File file2 = new File("C:\\Users\\Public\\Desktop", "Java课程");
File file3 = new File(file1, "Java课程.ppt");
File类的创建功能
实现创建功能的方法:
方法 | 功能 |
---|
public boolean createNewFile() | 创建一个新的文件 如果存在这样的文件,就不创建了 |
public boolean mkdir() | 创建文件夹 如果存在这样的文件夹,就不创建了 |
public boolean mkdirs() | 创建文件夹,如果父文件夹不存在,会帮你创建出来 可以创建多层目录 |
File file = new File("C:\\Users\\Public\\Desktop\\Java课程");
file.mkdir();
file.mkdirs();
File类的删除功能
方法 | 功能 |
---|
public boolean delete() | 删除文件或者文件夹 |
- 注意:注意:删除文件夹时 这个文件夹是空文件夹 如果这个文件夹里面有文件,则不能删除!
删除单级目录
- 删除桌面上的“Java课程”文件夹(目录中无其他目录)
public class 删除单级目录 {
public static void main(String[] args) {
File file = new File("C:\\Users\\Public\\Desktop\\Java课程");
File[] files = file.listFiles();
for (File file1 : files) {
file1.delete();
}
file.delete();
}
}
删除多级目录
- 删除桌面上的“Java课程”文件夹(目录存在其他目录)
public class 删除多级目录 {
public static void main(String[] args) {
File file = new File("C:\\Users\\Administrator\\Desktop\\Java课程");
remove(file);
}
private static void remove(File file) {
File[] files = file.listFiles();
for (File file1 : files) {
if (file1.isFile()){
file1.delete();
}else {
remove(file1);
}
}
file.delete();
}
}
File类的重命名功能
方法 | 功能 |
---|
public boolean renameTo(File dest) | 把文件重命名为指定的文件路径 |
- 将桌面上的“Java课程”文件夹”该为“Java”
public class 重命名 {
public static void main(String[] args) {
File file = new File("C:\\Users\\Public\\Desktop\\Java课程");
File file1 = new File(file.getParent(), "java");
file.renameTo(file1);
}
}
File类的判断功能
方法 | 功能 |
---|
public boolean isDirectory() | 判断是否是目录 |
public boolean isFile() | 判断是否是文件 |
public boolean exists() | 判断是否存在 |
public boolean canRead() | 判断是否可读 |
public boolean canWrite() | 判断是否可写 |
public boolean isHidden() | 判断是否隐藏 |
public boolean isAbsolute() | 判断是否使用的是绝对路径 |
File类的获取功能
方法 | 功能 |
---|
public String getAbsolutePath() | 获取绝对路径 |
public String getPath() | 获取相对路径 |
public String getParent() | 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null |
public File getParentFile() | 返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null |
public long getTotalSpace() | 返回此抽象路径名指定的分区大小。 返回总容量 单位字节 |
public long getFreeSpace() | 返回此抽象路径名指定的分区中未分配的字节数。返回剩余容量 单位字节 |
public String getName() | 获取名称 |
public long length() | 获取长度。字节数 |
public long lastModified() | 获取最后一次的修改时间,毫秒值 |
public String[] list() | 获取指定目录下的所有文件或者文件夹的名称数组 |
public File[] listFiles() | 获取指定目录下的所有文件或者文件夹的File数组 |
文件名称过滤器
输出指定目录下指定后缀的文件名
-要求输出桌面上后缀为“.jpg”的所有文件:
public class 搜索指定文件 {
public static void main(String[] args) {
File file = new File("C:\\Users\\Public\\Desktop");
File[] files = file.listFiles();
for (File file1 : files) {
if (file1.getName().endsWith(".jpg")){
System.out.println(file1.getName());
}
}
}
}
文件名称过滤器的概述及使用
方法 | 功能 |
---|
public String[] list(FilenameFilter filter) | 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录 |
public File[] listFiles(FilenameFilter filter) | 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件 |
public class 文件名称过滤器 {
public static void main(String[] args) {
File file = new File("C:\\Users\\Public\\Desktop");
File[] files = file.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
File file1 = new File(dir, name);
if (file1.isFile() && file1.getName().endsWith(".jpg")) {
return true;
} else {
return false;
}
}
});
for (File file1 : files) {
System.out.println(file1);
}
}
}