1.创建file对象
File(String pathname)
通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
File(String parent, String child)
从父路径名字符串和子路径名字符串创建新的 File实例。
File(File parent, String child)
从父抽象路径名和子路径名字符串创建新的 File实例。
public static void main(String[] args) {
//File(String pathname)通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
File file1 = new File("D:\\IO\\Student.java");
System.out.println(file1);
//File(String parent, String child) 从父路径名字符串和子路径名字符串创建新的 File实例。
File file2=new File("D:\\IO","Student.java");
System.out.println(file2);
// File(File parent, String child)从父抽象路径名和子路径名字符串创建新的 File实例。
File p = new File("D:\\IO");
File file3 = new File(p,"Student.java");
System.out.println(file3);
}
2.路径分隔符
路径分隔符:表示的是目录层级之间的分隔符号
Windows的默认分隔符:”\”
Unix系统默认的分隔符:“/”
Java 是跨平台的 为了解决不同平台之间对于路径分隔符的 差异
static String
separator
与系统相关的默认名称 - 分隔符字符,以方便的方式表示为字符串。
File file1 = new File("D:"+File.separator+"IO"+File.separator+"Student.java");
在windows系统中 路径的表示必须使用双斜线\ 或者使用/
3 File的常用方法
判断方法:
boolean canExecute() 判断此路径表示的 文件是否是可执行文件
boolean canRead() 判断此File表示的文件是否可读。
boolean canWrite() 判断次File表示的文件是否可写
boolean exists() 判断File表示的文件或目录是否存在
boolean isDirectory() 判断此File表示的是否是一个目录。
boolean isFile() 判断此File表示的是否是一个文件。
boolean isHidden() 判断此File表示的是否是一个隐藏文件。。
创建功能:
boolean createNewFile()
当且仅当具有该名称的文件尚不存在时,原子地创建一个由该抽象路径名命名的新的空文件。
static File
createTempFile(String prefix, String suffix)
在默认临时文件目录中创建一个空文件,使用给定的前缀和后缀生成其名称。
static File
createTempFile(String prefix, String suffix, File directory)
在指定的目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。
boolean mkdir()
创建由此抽象路径名命名的目录。
boolean mkdirs()
创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录。
boolean delete()
删除由此抽象路径名表示的文件或目录。 删除操作不经过回收站
void deleteOnExit()
请求在虚拟机终止时删除由此抽象路径名表示的文件或目录。
import java.io.File;
import java.io.IOException;
/**
* @author Mr.Hu
* @create 2021/01/11
*/
public class FileMethodTest {
//创建目录及其文件 并实现删除功能
public static void main(String[] args) throws IOException {
File file1 = new File("D:\\IO\\test");
if(!file1.exists()){//File表示的对象不存在
file1.mkdir();// 创建目录 只能创建一级目录
}
File file2 = new File(file1,"\\test2\\test3");
if(!file2.exists()){
file2.mkdirs();//创建多级目录
}
//创建文件
File file3 = new File(file2,"hello.txt");
if(!file3.exists()){
System.out.println("创建文件");
file3.createNewFile();//创建一个新文件
}
}
}
//删除文件
if(file3.isFile()){//文件存在且为普通文件
System.out.println("删除文件");
file3.delete();
}
// 删除目录 删除目录时 每次只能删除 一级目录 不能删除多级目录 删除目录时 目录必须为空
file2.delete();
}
删除多级目录 删除时注意 删除之后找不回来
public class FileMethodTest {
public static void main(String[] args) throws IOException {
File srcDir = new File("D:\\IO");
//删除srcDir 表示的目录下的所有的文件及其目录
deleteDir(srcDir);
}
public static void deleteDir(File srcDir){
//获取给定的目录下的所有的文件或者目录
File[] fileArr = srcDir.listFiles();
//遍历该目录下的所有文件或目录
if(fileArr != null){
for(File file : fileArr){
// 判断该file表示的对象是否是目录
if(file.isDirectory()){
//是 递归调用
deleteDir(file);
}else{
//否 不是目录 就执行删除
file.delete();
}
file.delete();
}
}
}
}