ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

File类API的使用

2022-09-03 23:31:48  阅读:185  来源: 互联网

标签:API 文件 String 对象 boolean 文件夹 File 使用


File类

File类 : 计算机中的文件和文件夹的类  -> File类 计算机中的所有硬盘内容

File类的构造方法

***File(String pathname) : 直接传入目标文件的路径,让File对象指向路径结尾的文件/文件夹
    
File(String parent, String child) 
    
**File(File parent, String child) 
    
        创建File对象做了哪些事情 :
        1. 产生了File对象
        2. 在堆内存中开辟了空间
        3. 如果文件/文件夹不存在不会创建文件/文件夹同时也不会报错
        4. 如果文件/文件夹存在也不会覆盖老文件/老文件夹同时也不会报错

相对路径和绝对路径

相对路径和绝对路径 : 文件/文件夹的路径表示形式

绝对路径 : 
	绝对能找到资源的路径 -> 完整路径
	特点 : 从盘符开头 [只要看到一个路径以盘符开头,那么这个路径一定是绝对路径]
	
	
相对路径 : 
	相对一个起点的简化寻找资源的路径 -> 简单路径的表现       
	最重要的是 参照物 -> 其实就是直接在参照物开始找寻(往内) 这个是相对
	IO板块的参照物 是当前项目的根目录 //当前项目内的资源,可以用相对路径表示
	特点 : 不以盘符开头

File类的创建功能

 boolean createNewFile() : 创建文件 ,只创建文件
 	//如果文件不存在,创建文件; 文件存在不会覆盖源文件
 
 boolean mkdir()  : 创建单级文件夹 , 只能创建文件夹
 boolean mkdirs() : 创建多级文件夹 , 只能创建文件夹   

File类的删除功能(了解)

boolean delete() : 删除File对象指向的文件和文件夹
	注意1 : delete 方法删除是不走回收站的
	注意2 : delete 删除文件夹只是删除文件夹! 如果文件夹内有内容那么文件夹删除失败

File类的判断功能

*boolean exists() : 判断File对象指向的文件/文件夹 是否存在

*boolean isFile()  :  判断File对象指向的文件/文件夹 是否是文件
*boolean isDirectory() : 判断File对象指向的文件/文件夹 是否是文件夹  

boolean isAbsolute() :  判断File对象指向的文件/文件夹 是否是以绝对路径创建的
boolean isHidden()  : 判断File对象指向的文件/文件夹 是否是隐藏文件/文件夹

File类的获取功能

File getAbsoluteFile()  : 获取File对象指向的文件/文件夹 的 绝对路径的表现形式,以File对象类型返回
String getAbsolutePath()    : 获取File对象指向的文件/文件夹 的 绝对路径的表现形式,以String对象类型返回
  
* String getName()  获取File对象指向的文件/文件夹 的名称

//此方法会把路径结尾的那个文件/文件夹的所有前置路径都作为父路径
String getParent() : 获取File对象指向的文件/文件夹 的 父路径对象 //String类型返回结果 
File getParentFile() : 获取File对象指向的文件/文件夹 的 父路径对象 //File类型返回结果   

String getPath() : 获取创建File对象时,程序员传入的路径

* long length()  : 获取File对象指向的文件的所占字节数(长度) //文件夹没有大小

long lastModified()  : 获取File对象指向的文件/文件夹 的最后修改时间 //时间毫秒值

FIle类的文件夹遍历功能

File[] listFiles()  : 获取File对象指向的文件夹 根目录的所有文件和文件夹
	注意事项 :
		1. listFiles() 只能遍历单级文件夹
		2. listFiles() 不能够去遍历文件 //如果遍历文件 返回null	

带过滤条件的文件夹遍历

File[] listFiles(FileFilter filter)  : 带过滤器的文件夹遍历
	FileFilter : 文件过滤器接口
		抽象方法 : boolean accept(File file) 
            //File file : 遍历时获取到的文件对象
            重写accept方法是在编写过滤条件
            	如果返回true 装进数组中
            	如果返回false 不装进数组中

小案例

/*
    多级文件夹的遍历
    递归 : 方法调用方法自己
    递归 :
        1. 一定要定义方法
        2. 定义的方法一定写形参 -> (每一次递归传递进来的实参要发生改变)
        3. 每一次递归实参的变化要往出口方向前进
        4. 递归有出口
        5. 找规律
    出口 :   如果是文件
    参数变化 : 再次调用方法时传入的是子文件夹
 */
public static void main(String[] args) {
        //创建根目录
        File root = new File("C:\\Users\\WH-HKB\\Desktop\\IdeaProjects");

        getFileName(root);//第一次调用 : 根目录
    }

    public static void getFileName(File file){//第一次调用 : 根目录  接下来的调用 根目录下的子文件/子文件夹
        //先写出口
        if (file.isFile()){
            System.out.println("\t文件有 : " + file.getName());
            return;
        }
        //再写规律
        //如果能从上方判断下来,说明file对象指向的 一定是一个文件夹

        System.out.println("文件夹有 : " + file.getName());

        //过滤时只要.java文件
        File[] files = file.listFiles(new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                return pathname.getName().endsWith(".java") || pathname.isDirectory();
            }
        });
        for (File ziFile : files) {
            //不管ziFile是文件还是文件夹
            getFileName(ziFile);//后续调用 : 子目录
        }
    }

标签:API,文件,String,对象,boolean,文件夹,File,使用
来源: https://www.cnblogs.com/Jing-com/p/16653934.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有