File的学习

Java 中 文件操作的 API

1、创建文件对象的三种方式:

new File(String Pathname) 根据文件的绝对路径创建文件对象

new File(String Parent , String Child) 根据父路径字符串和子路径字符串创建文件对象

new File(File parent , String Child)根据父路径对应文件对象和子路径名字符串创建文件对象

注意:\ 在Java中表示转义字符,如果想要表示文件的路径的话 需要使用 \\ (不要自己拼接,要使用构造方法最好!)

2、File常见的成员方法(判断、获取)

public  boolean isDirectory()		//判断此路径名表示的File是否为文件夹
public  boolean isFile()		//判断此路径名表示的File对象 是否为文件
public  boolean exists()		//判断此路径名表示的File 是否存在
public  long  length()		//返回文件的大小(字节数量)  只能是文件的大小,单位是字节,   可以通过除以1024进行换算单位 除以一次1024是kb  除以两次是mb   除以三次是GB    无法获取文件夹的大小 (想要获取文件夹的大小,就是把所有文件的大小加到一起)
public  String getAbsolutePath()		//返回文件的绝对路径
public  String getPath()		//返回定义文件时使用的路径    定义时的参数是什么,就返回什么
public  String getName()		//返回文件的名称,带后缀
public  long  lastModified()		//返回文件的最后修改时间(时间的毫秒值)

3、File常见的成员方法(创建、删除)

public boolean createNewFile()		//创建一个新的文件
   细节1:如果当前路径表示的文件是不存在的,则创建成功,方法返回true
//!如果当前路径表示的文件是存在的,则创建失败,方法返回false
//细节2:如果父级路径是不存在的,那么方法会有异常IoException
//细节3:createNewFile方法创建的一定是文件,如果路径中不包含后缀名,则创建一个没有后缀的文件
    
public boolean mkdir()		//创建单级文件夹
//细节1:windows当中路径是唯一的,如果当前路径已经存在,则创建失败,返回false
//细节2:mkdir方法只能创建单级文件夹,无法创建多级文件夹。
    
    
public boolean mkdirs()		//创建多级文件夹
public boolean delete()		//删除文件、空文件夹   不会走回收站

4、File常见的成员方法(获取并遍历)

 (掌握) public File[]  listFiles()		//获取当前路径下所有内容(包括隐藏的文件)
/**
   当调用者File表示的路径不存在时,返回null
   当调用者File表示的路径是文件时,返回null
   当调用者File表示的路径是一个空文件夹时,返回一个长度为0的数组
   当调用者File表示的路径是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回
   当调用者File表示的路径是一个有隐藏文件的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏文件
   当调用者File表示的路径是需要权限才能访问的文件夹时,返回null
**/
    
    
public static File[] listRoots()		//列出可用的文件系统根  所有盘符
public String[] list()		//获取当前该路径下所有内容
public String[] list(FilenameFilter  filter)		//利用文件名过滤器获取当前该路径下所有内容
     //accept方法的形参,依次表示aaa文件夹里面每一个文件或者文件夹的路径
//参数一:父级路径
//参数二:子级路径
//返回值:如果返回值为true,就表示当前路径保留
//如果返回值为false,就表示当前路径舍弃不要
     例子:需求:我现在要获取D:\\aaa文件夹里面所有的txt文件
File f2= new File(pathname:"D:\\aaa")
String[] arr3 = f2.1ist(new FilenameFilter(){
	@Override
	public boolean accept(File dir,String name){
			File src = new File(dir,name);
				return src.isFile() && name.endsWith(".txt");
     }
 });
	System.out.println(Arrays.toString(arr3))
     
     
        
     
public File[] listFiles(FileFilter filter)		//利用文件名过滤器获取当前该路径下所有内容
public File[] listFiles(FilenameFilter filter)		//利用文件名过滤器获取当前该路径下所有内容

遍历C盘 得到所有以 .avi 结尾的文件

File src = new File("C:\\");
findAVI(src);   //调用下面的findAVI 方法


public static void findAVI(File src){   //"C:'\\'"
    //1、进入文件夹 src
    File[] files = src.listFiles();
    //2/遍历数组,依次得到src 里面每一个文件或者文件夹
    if(files != null){
        for(File file : files){
            if(file.isFile()){
                //3、判断,如果是文件的话,就可以执行题目的业务逻辑
                String name  = file.getName();
                if(name.endWith(".avi")){
                    System.out.println(file);
                }
                else {
                    //4、判断,如果是文件夹的话,就可以进入递归
                    //细节: 再次调用本方法的时候,参数一定要是src的次一级路径
                    findAVI(file);
                }
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值