JAVASE 高级 day_9 File

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);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值