File
File :java.io.File 文件和目录路径名的抽象表示。
File 不是表示一个真正的文件 而是表示文件或目录的的路径的表示
1.创建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 是跨平台的 为了解决不同平台之间对于路径分隔符的 差异
File file1 = new File("D:"+File.separator+"IO"+File.separator+"Student.java");
在windows系统中 路径的表示必须使用双斜线\ 也可以使用/
3. File的常用方法
判断方法:
创建功能
package cn.lanqiao.demo;
import java.io.File;
import java.io.IOException;
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();
}
}
}
}
获取功能
重命名
// 重命名
public static void main(String[] args) {
File file = new File("d:\\IO");
File[] files = file.listFiles();
for(File file1 : files){
String srcName = file1.getName();
String newName = srcName.substring(srcName.lastIndexOf("-") + 1);
File dir = new File(file,newName);
file1.renameTo(dir);
}
}