File类的基本运用、查找、删除

本文详细介绍了Java中File类的使用,包括构造方法、文件创建与删除、路径判断、文件属性获取、文件名修改、列举文件及获取盘符等功能。通过示例代码演示了如何操作文件和目录,是Java入门学习的重要知识点。
摘要由CSDN通过智能技术生成


前言

java基础-文件类的使用


File:文件和目录路径名的抽象表示形式,File 类的实例是不可变的

  • 构造方法:
  • File的常用功能:
  •  创建功能
    
  •  删除功能
    
  •  获取功能
    
  •  判断功能		
    
  •  修改文件名
    

一、构造方法

	//File(String pathname) :将指定的路径名转换成一个File对象
	File f = new File("D:\\a\\b.txt");
	
	//File(String parent, String child) : 根据指定的父路径和文件路径创建File对象
	File f2 = new File("D:\\a\\","b.txt");
	
	//File(File parent, String child) :根据指定的父路径对象和文件路径创建File对象
	File parent = new File("D:\\");
	File f3 = new File(parent,"a\\b.txt");

二、基本使用

1.创建、删除功能

创建功能

  •  boolean createNewFile()  					//创建文件
    
  •  boolean mkdir()  							//创建文件夹
    
  •  boolean mkdirs()  						//创建文件夹,支持多层创建
    

删除功能

  •  boolean delete() 							//删除文件、文件夹
    
  • 绝对路径:固定不可改变的路径,以盘符开头

  • 相对路径:相对某个参照物,不能以盘符开头

  • 在eclipse中相对路径相对应当前项目的根目录

  • 注意:删除一个文件夹,这个文件夹下面不能有其他的文件和文件夹

代码如下(示例):

//File f = new File("d:\\a\\b.txt");//绝对路径
File f2 = new File("a.txt");//相对路径

//boolean createNewFile() : 当指定文件不存在时创建文件并返回true,否则返回false
System.out.println(f2.createNewFile());

//boolean mkdir()   : 当指定文件夹不存在时创建文件夹并返回true,否则返回false
File f3 = new File("b");
System.out.println(f3.mkdir());

//boolean mkdirs() : 创建指定文件夹,当文件夹所在的目录不存在,则顺道一块创建了
File f4 = new File("a\\b\\f");
//System.out.println(f4.mkdir());   //多层目录支持创建
System.out.println(f4.mkdirs());	//支持单层、多层目录创建

File f5 = new File("c.txt");
System.out.println(f5.mkdir());		//创建的是目录

//boolean delete() :当指定的文件或文件夹存在时删除文件或者文件夹 并返回true,否则返回false
//System.out.println(f2.delete());
System.out.println(f5.delete());

//File f6 = new File("c");
//System.out.println(f6.delete());

2.判断功能

代码如下(示例):

File f = new File("b.txt");
//boolean exists() : 判断文件或者文件夹是否存在,如果存在则返回true,否则返回false
System.out.println(f.exists());

//File f = new File("a.txt");
File f2 = new File("a\\b.txt");
//boolean isAbsolute() :判断File对象指向的路径是否是绝对路径,如果是绝对路径则返回true,否则返回false
System.out.println(f2.isAbsolute());

File f = new File("a.txt");
File f2 = new File("b.txt");
//boolean isDirectory() :判断File对象指向的路径是否是文件夹,如果是则返回true,否则返回false
//boolean isFile()  : 判断File对象指向的路径是否是文件,如果是则返回true,否则返回false
//System.out.println(f.isDirectory());
//System.out.println(f2.isDirectory());
System.out.println(f.isFile());
System.out.println(f2.isFile());

File f = new File("d:\\a\\c.txt");
//boolean isHidden() :判断File对象指向的路径是否有隐藏属性,如果隐藏了则返回true,否则返回false
System.out.println(f.isHidden());

3.获取功能、修改文件名

代码如下(示例):

File f = new File("d:\\a\\b.txt");
File f2 = new File("a.txt");
//File getAbsoluteFile()  :以File对象的形式返回当前File对象所有指向的绝对路径
System.out.println(f2.getAbsoluteFile());
//String getAbsolutePath() : 返回File对象所指向的绝对路径
System.out.println(f2.getAbsolutePath());


File parent = new File("b");
File f3 = new File(parent,"c.txt");
if(!parent.exists()) {
	parent.mkdirs();
}
System.out.println(f3.createNewFile());
//String getParent() 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null
System.out.println(f3.getParent());
//File getParentFile() 返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null。
System.out.println(f3.getParentFile());


File f = new File("a.txt");
File f2 = new File("d:\\a\\b.txt");
File f3 = new File("b");
//String getName() : 获取文件和文件夹的名称
System.out.println(f.getName());
System.out.println(f2.getName());
System.out.println(f3.getName());

//String getPath() : 返回创建File对象时给的路径
System.out.println(f.getPath());
System.out.println(f2.getPath());
System.out.println(f3.getPath());
	
//long lastModified() : 以毫秒值的形式返回最后修改时间
System.out.println(f.lastModified());
//2514023311294
Date d = new Date(f.lastModified());
System.out.println(d.toLocaleString());

//long length() : 返回文件的字节数
System.out.println(f.length());
File f4 = new File("b\\c.txt");
System.out.println(f4.length());

//修改文件名字
File f = new File("f.txt");
File f2 = new File("b.txt");
//boolean renameTo(File dest) : 将当前File对象所指向的路径 修改为 指定File所指向的路径
//注意:修改的文件路径不能存在,如果存在则修改失败
System.out.println(f.renameTo(f2));

4.获取文件下所有文件、文件夹名字,获取盘符

重要的获取功能

  • String[] list() //获取当前文件下的所有文件、文件夹名字
  • File[] listFiles() //获取当前文件下的所有文件、文件夹名字(带路径)
  • static File[] listRoots() //获取电脑的所有盘符
File f = new File("b");
File f2 = new File("D:\\qycache");
File f3 = new File("b.txt");
//String[] list() : 返回当前路径下所有的文件和文件夹名称
//注意:只有指向文件夹的File对象才可以调用该方法
String[] files = f2.list();
for (int i = 0; i < files.length; i++) {
	System.out.println(files[i]);
}


File f = new File("b");
File f2 = new File("D:\\qycache");
File f3 = new File("c.txt");
//File[] listFiles()
File[] files = f2.listFiles();
for (File file : files) {
	System.out.println(file.getName());  //因为获取的是带路径的,所以使用getName()

}


//static File[] listRoots() :  返回的是所有盘符
File[] files = File.listRoots();
for (File file : files) {
	System.out.println(file);
}

三、基本运用

1.查看所有文件

private static void method(File file) {
        if(file.isDirectory()){
            File[] files = file.listFiles();
            for(File f:files){
                //判断是否文件对象
                if(f.isFile()){
                    if(f.getName().endsWith(".java")){
                        System.out.println(f.getName());
                    }
                }else if(file.isDirectory()){
                    method(f);
                }
            }
        }
    }

1.删除所有文件

if(f.isDirectory()){
            //删除自己的所有子文件和子目录
            //获取所有的子文件和子目录
            File[] files = f.listFiles();
            for(File f1 : files ){
                if (f1.isFile()){
					// 直接删除
                    System.out.println(f1.getName());
                    f1.delete();
                }else if(f1.isDirectory()){
                    //继续查看是否还有文件和子目录
                    method(f1);
                }
            }
            //删除自己
            System.out.println(f.getName());
            f.delete();
        }

总结

File:文件和目录路径名的抽象表示形式,File 类的实例是不可变的

讲了File的构造函数、File的常用功能:创建功能、删除功能、获取功能、判断功能、修改文件名、获取文件下所有文件、文件夹名字,获取盘符以及基本的运用查找、删除。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值