File类概述及其方法的使用

一:File类

        File类的概述:文件和目录路径名的抽象表示形式,这个File类可以用来表示文件,也可以用来表示目录.  

        构造方法:
                   File(String pathname):根据一个路径得到File对象    
                   File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
                   File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象

        常用功能:

                    创建功能:
                            public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了 注意这个方法只能创建单层目录

                            如果创建多层目录得一层一层创建
                            public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来 可以创建多层目录 当然也可以

                            创建单层目录

                            注意事项:如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径

                            相对路径:没有带盘符的路径
                            绝对路径:带有盘符的路径

                     删除功能:

                            public boolean delete():删除文件或者文件夹 

                           注意:删除文件夹时 这个文件夹是空文件夹 如果这个文件夹里面有文件,则不能删除 

                           java中的删除不走回收站。要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹

                     重命名功能:

                           // 创建File对象封装了a.txt
                              File file = new File("b.txt") ;
                           // 创建目标文件对象
                               File destFile = new File("E:\\c.txt") ;
                           // public boolean renameTo(File dest):    把指定的文件重命名为dest这个文件对应的名称
                              System.out.println(file.renameTo(destFile));
                            注意事项:
                                     如果路径名相同,就是改名。
                                     如果路径名不同,就是改名并剪切。

                      判断功能:

                             public boolean isDirectory():    判断是否是目录
                             public boolean isFile():    判断是否是文件
                             public boolean exists():    判断是否存在
                             public boolean canRead():    判断是否可读
                             public boolean canWrite():    判断是否可写
                             public boolean isHidden():    判断是否隐藏       

                        获取功能:

                             public String getAbsolutePath():    获取绝对路径
                             public String getPath():      获取相对路径
                             public String getParent() :    返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录

                                                                        则返回 null。
                             public File getParentFile()  返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录

                                                                     则返回 null。 
                             public long getTotalSpace()  返回此抽象路径名指定的分区大小。 返回总容量 单位字节
                             public long getFreeSpace()   返回此抽象路径名指定的分区中未分配的字节数。返回剩余容量 单位字节
                             public String getName():        获取名称
                             public long length():            获取长度。字节数
                             public long lastModified():        获取最后一次的修改时间,毫秒值
                             public String[] list():            获取指定目录下的所有文件或者文件夹的名称数组
                             public File[] listFiles():        获取指定目录下的所有文件或者文件夹的File数组 

 

构造方法及其常用方法的举例:

    

package org.westos.Demo;
//        构造方法
//
//       File(String pathname):根据一个路径得到File对象    
//       File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
//       File(File parent, String child):根据一个父File对象和一个子文件/目录得到File

import java.io.File;

public class Demo1 {
    public static void main(String[] args) {
        File file = new File("D:\\Demo");//跟据一个路径创建得到一个File对象
        file.mkdir();
        File file1 = new File("D:\\Demo", "1.txt");//根据一个目录和一个子文件/目录得到File对象
        file1.mkdir();
        File file2 = new File(file, "2.txt");//根据一个父File对象和一个子文件/目录得到File
        file2.mkdir();
        //  创建功能:
        //        public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了 注意这个方法只能创建单层目录
        //                               如果创建多层目录得一层一层创建
        //       public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来 可以创建多层目录 当然也可以
        //                               创建单层目录

        //例如创建一个这样的目录 D:\Demo2\test\1.txt
        //1.采用 mkdir();
        File file3 = new File("D:\\Demo2");
        file3.mkdir();
        File file4 = new File("D:\\Demo2\\test1");
        file4.mkdir();
        File file5 = new File("D:\\Demo2\\test1\\1.txt");
        file5.mkdir();
        //2.采用mkdirs() 多级目录创建

        File file6 = new File("D:\\Demo3\\test2\\2.txt");
        file6.mkdirs();

//        删除功能:
//             public boolean delete():删除文件或者文件夹 

        file6.delete();//如果这个文件里面含有文件或者文件夹则不能删除

//        重命名功能:
//        public boolean renameTo(File dest):    把指定的文件重命名为dest这个文件对应的名称
        File file7 = new File("D:\\b.txt");

        // 创建目标文件对象
        File destFile = new File("E:\\c.txt");

        // public boolean renameTo(File dest):	把指定的文件重命名为dest这个文件对应的名称
        //System.out.println(file7.renameTo(destFile));

        //判断功能
        //		public boolean isDirectory():	判断是否是目录
        //		public boolean isFile():	判断是否是文件
        //		public boolean exists():	判断是否存在
        //		public boolean canRead():	判断是否可读
        //		public boolean canWrite():	判断是否可写
        //		public boolean isHidden():	判断是否隐藏

        File file8 = new File("D:\\Demo4");
        file8.mkdir();
        System.out.println(file8.isDirectory());//是否是目录
        System.out.println(file8.isFile());//是否是文件
        System.out.println(file8.exists());//是否存在
        System.out.println(file8.canRead());//是否可读
        System.out.println(file8.canWrite());//是否可写
        System.out.println(file8.isHidden());//是否可隐藏

//     获取功能
//        public String getAbsolutePath():获取绝对路径
//        public String getPath():获取相对路径
//        public String getParent():返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。
//        public File getParentFile():返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null。
//        public long getTotalSpace():返回此抽象路径名指定的分区大小。 返回总容量 单位字节
//        public long getFreeSpace():返回此抽象路径名指定的分区中未分配的字节数。返回剩余容量 单位字节
//        public String getName():获取名称
//        public long length():获取长度。字节数
//        public long lastModified():获取最后一次的修改时间,毫秒值
//        public String[] list():获取指定目录下的所有文件或者文件夹的名称数组
//        public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组

        File file9 = new File("D:\\Demo4");
        file9.mkdir();
        System.out.println(file9.getAbsolutePath());
        System.out.println(file9.getPath());
        System.out.println(file9.getParent());
        System.out.println(file9.getParentFile());
        System.out.println(file9.getTotalSpace());
        System.out.println(file9.getFreeSpace());
        System.out.println(file9.getName());
        System.out.println(file9.length());
        System.out.println(file9.lastModified());


    }
}

输出指定目录下指定后缀的文件名:

              判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称
              分析:
                   a: 把E:\\demo这个路径封装成一个File对象
                   b: 获取该路径下所有的文件或者文件夹对应的File数组
                   c: 遍历这个数组,进行判断

                   // 把E:\\demo这个路径封装成一个File对象
                      File file = new File("E:\\demo") ;
                   // 获取该路径下所有的文件或者文件夹对应的File数组
                      File[] files = file.listFiles() ;
                   // 遍历
                      for(File f : files){
                   // 判断
                      if(f.isFile() && f.getName().endsWith(".jpg")){
                      System.out.println(f.getName());
                    }
           }

文件名称过滤器的概述及使用:

           文件名称过滤器的概述
                 public String[] list(FilenameFilter filter)
                 public File[] listFiles(FilenameFilter filter)
           文件名称过滤器的使用:    需求:判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称

           分析:
                a: 把E:\\demo这个路径封装成一个File对象
                b: 获取所有的以.jpg结尾的文件数组        (相当于过滤)
                c: 遍历数组
                public File[] listFiles(FilenameFilter filter)
                public String[] list(FilenameFilter filter)

               // 把E:\\demo这个路径封装成一个File对象
                  File file = new File("E:\\demo") ;
        
               // 获取所有的以.jpg结尾的文件数组        (相当于过滤)
               // public File[] listFiles(FilenameFilter filter)
                  File[] files = file.listFiles(new FilenameFilter(){
            
               /**
                  * dir: 表示的当前文件对应的父文件
                  * name: 就是每一个文件对应的名称
                 */
                  @Override
                 public boolean accept(File dir, String name) {
                // 封装指定的文件为一个File对象
//                  File file = new File(dir , name) ;
                //                System.out.println(file);
//                boolean flag = file.isFile() && file.getName().endsWith(".jpg") ;
                // 后缀名为.jpg的文件
                // System.out.println(dir + "----" + name);
                 return new File(dir, name).isFile() && name.endsWith(".jpg") ;
            }
             });
         // 遍历数组
        for(File f : files){
            System.out.println(f.getName());
        }

 

文件名称过滤器的举例:

public class Demo1{
        public static void main(String[] args){
        // 把E:\\demo这个路径封装成一个File对象
		File file = new File("E:\\demo") ;
		
		// 获取所有的以.jpg结尾的文件数组		(相当于过滤)
		// public File[] listFiles(FilenameFilter filter)
		File[] files = file.listFiles(new FilenameFilter(){
			
			/**
			 * dir: 表示的当前文件对应的父文件
			 * name: 就是每一个文件对应的名称
			 */
			@Override
			public boolean accept(File dir, String name) {
				
				// 封装指定的文件为一个File对象
//				File file = new File(dir , name) ;
				
//				System.out.println(file);
//				boolean flag = file.isFile() && file.getName().endsWith(".jpg") ;
				
				// 后缀名为.jpg的文件
				// System.out.println(dir + "----" + name);
				
				return new File(dir, name).isFile() && name.endsWith(".jpg") ;
			}
			
		});
		
		// 遍历数组
		for(File f : files){
			System.out.println(f.getName());
		}
		
        
        }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值