file类_file类型 - CSDN
精华内容
参与话题
  • java中File类方法详解

    千次阅读 2019-04-24 17:16:13
    File类简介   在 Java 中,File 类是 java.io 包中唯一代表磁盘文件本身的对象。File 类定义了一些与平台无关的方法来操作文件,File类主要用来获取或处理与磁盘文件相关的信息,像文件名、 文件路径、访问权限和...

    File类简介

      在 Java 中,File 类是 java.io 包中唯一代表磁盘文件本身的对象。File 类定义了一些与平台无关的方法来操作文件,File类主要用来获取或处理与磁盘文件相关的信息,像文件名、 文件路径、访问权限和修改日期等,还可以浏览子目录层次结构。
      File 类表示处理文件和文件系统的相关信息。也就是说,File 类不具有从文件读取信息和向文件写入信息的功能,它仅描述文件本身的属性。

    File类的相关方法

    1、构造方法

    • File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
    • File(String parent,String child) 根据指定的父路径和文件路径创建一个新File对象实例
    • File(File parent,String child) 根据指定的父路径对象和文件路径创建一个新的File对象实例

    代码实现过程

    /*
     - File的构造函数
     - */
     public static void main(String[] args) {
         //File(String pathname)  将指定路径名转换成一个File对象
         File file = new File("D:\\1.txt");
         System.out.println(file);
         //File(String parent,String child) 根据指定的父路径和文件路径创建File对象
         File file1 =  new File("D:\\a","1.txt");
         System.out.println(file1);
         //File(File parent,String child) 根据指定的父路径对象和文件路径创建File对象
         File parent = new File("D:\\a");
         File file2 = new File(parent, "1.txt");
         System.out.println(file2);
         File file3 = new File(new File("D:\\a"),"1.txt");
         System.out.println(file3);
    
     }
    

    运行结果在这里插入图片描述

    2、File类创建和删除功能

    • boolean createNewFile();指定路径不存在该文件时创建文件,返回true 否则false
    • boolean mkdir() 当指定的单击文件夹不存在时创建文件夹并返回true 否则false
    • boolean mkdirs() 但指定的多级文件夹在某一级文件夹不存在时,创建多级文件夹并返回true 否则false
    • boolean delete() 删除文件或者删除单级文件夹
    • 删除文件夹,这个文件夹下面不能有其他的文件和文件夹

    代码实现过程

    public static void main(String[] args) throws IOException {
        File file = new File("D:\\a\\1.txt");
        File file1 = new File("1.txt");
        boolean flag = file1.createNewFile();
        System.out.println(flag);
    
        File file2 = new File("b");
        boolean flag2 = file2.mkdir();
        System.out.println(flag);
    
        File file3 = new File("c\\d\\e");
        boolean d = file1.mkdir();
        boolean c = file1.mkdirs();
        System.out.println(d);
        System.out.println(c);
        File file4 = new File("c.txt");
        System.out.println(file4.mkdir());
    
        File file5 = new File("b");
        System.out.println(file2.delete());
    }
    

    运行结果在这里插入图片描述

    3、File类的判断功能

    • boolean exists() 判断指定路径的文件或文件夹是否为空
    • boolean isAbsolute() 判断当前路径是否是绝对路径
    • boolean isDirectory() 判断当前的目录是否存在
    • boolean isFile() 判断当前的目录是否是一个文件
    • boolean isHidden() 判断当前路径是否是一隐藏文件

    代码实现过程

    public static void main(String[] args) throws IOException {
      // method();
      //  method2();
      //   method3();
      //  method4();
    }
    //判断文件是否存在
    public static void method() throws IOException {
        File file = new File("a.txt");
        file.createNewFile();
        boolean flag = file.exists();
        System.out.println(flag);
    }
    //判断当前路径是否为绝对路径
    public static void method2() throws IOException{
        File file = new File("D:\\a\\1.txt");
        boolean flag = file.isAbsolute();
        System.out.println(flag);
    }
    //判断当前是文件夹还是文件
    public static void method3() throws IOException{
        File file = new File("1.txt");
        File file1 = new File("b");
        file1.mkdir();
        boolean flag = file.isDirectory();
        boolean flag2 = file1.isFile();
        System.out.println(flag);
        System.out.println(flag2);
    }
    //判断当前路径是否为隐藏文件
    public static void method4() throws IOException{
       File file =  new File("D:\\a\\1.txt");
        System.out.println(file.isHidden());
    }
    

    运行结果

    • method()
      在这里插入图片描述
    • method2()
      在这里插入图片描述
    • method3()
      在这里插入图片描述
    • method4()
      在这里插入图片描述

    4、File类的获取功能和修改名字功能

    • File getAbsoluteFile() 获取文件的绝对路径,返回File对象
    • String getAbsolutePath() 获取文件的绝对路径,返回路径的字符串
    • String getParent() 获取当前路径的父级路径,以字符串形式返回该父级路径
    • String getName() 获取文件或文件夹的名称
    • String getPath() 获取File对象中封装的路径
    • long lastModified() 以毫秒值返回最后修改时间
    • long length() 返回文件的字节数
    • boolean renameTo(File dest) 将当前File对象所指向的路径修改为指定File所指向的路径

    代码实现过程:

    public static void main(String[] args) throws IOException {
       //  method();
       // method2();
       // method3();
       // method4();
    }
    public static void method(){
        File file = new File("D:\\a\\1.txt");
        File file1 = new File("1.txt");
        //以File对象返回的形式返回当前File对象所指向的绝对路径
        System.out.println(file1.getAbsoluteFile());
        //返回File对象所指向的绝对路径
        System.out.println(file1.getAbsolutePath());
    }
    public static void method2() throws IOException {
        File file = new File("a.txt");
        File file1 = new File("b","c.txt");
        System.out.println(file1.createNewFile());
    
        File parent = new File("b");
        File file2 = new File(parent,"c.txt");
        if (!parent.exists()){
            parent.mkdirs();
        }
        System.out.println(file2.createNewFile());
        System.out.println(file2.getParent());
        System.out.println(file2.getParentFile());
    }
    public static void method3() throws IOException{
       File file = new File("1.txt");
       File file1 = new File("D:\\a\\1.txt");
       File file2 = new File("b");
    
        System.out.println(file.getName());
        System.out.println(file1.getName());
        System.out.println(file2.getName());
    
        System.out.println(file.getPath());
        System.out.println(file1.getPath());
        System.out.println(file2.getPath());
    
        System.out.println(file.lastModified());
        Date date =  new Date(1556085068524L);
        System.out.println(date.toLocaleString());
    
        System.out.println(file.length());
        System.out.println(file2.length());
    }
    public static void method4() throws IOException{
        File file = new File("a.txt");
        File file1 = new File("e.txt");
        System.out.println(file.renameTo(file1));
    }
    

    运行结果

    • method()
      在这里插入图片描述
    • method2()在这里插入图片描述
    • method3()

    在这里插入图片描述

    • method4()
      在这里插入图片描述

    5、File 类的其他获取功能

    • String[] list(); 以字符串的形式返回当前路径下所有的文件和文件夹的名称
    • File[] listFile 以File对象的形式返回当前路径下的所有文件和文件夹名称
    • Static File[] listRoots() 获取计算机中的所有盘符
      代码实现过程
    public static void main(String[] args) {
        //method();
       // method2();
        //method3();
    }
    
    public static void method(){
        File file = new File("b");
        File file1 = new File("D:\\QQ\\1916247350");
        File file2 = new File("e.txt");
        String[] files = file1.list();
        for (int i=0;i<files.length;i++){
            System.out.println(files[i]);
        }
    }
    public static void method2(){
        File file = new File("b");
        File file1 = new File("D:\\QQ\\1916247350");
        File file2 = new File("e.txt");
    
        File[] files = file1.listFiles();
        for (File file3 : files) {
            System.out.println(file3.getName());
        }
    }
    public static void method3(){
        File[] files = File.listRoots();
        for (File file : files) {
            System.out.println(file);
        }
    }
    

    运行结果

    • method()在这里插入图片描述
    • method2()在这里插入图片描述
    • method(3)在这里插入图片描述

    练习

    1、输出指定目录下的所有java文件
    public static void main(String[] args) {
        File file = new File("D:\\IDEA\\IDEAprogram");
        method(file);
    }
    public static void method(File file){
    //判断文件是够是目录文件
        if (file.isDirectory()){
            File[] files = file.listFiles();
            for (File file1 : files) {
            //判断是否为文件
                if (file1.isFile()){
                //判断文件是否是以.java结尾的文件
                    if (file1.getName().endsWith(".java")){
                        System.out.println(file1.getName());
                    }
                }else if (file1.isDirectory()){  
                //回调,遍历file1
                    method(file1);
                }
            }
        }
    }
    

    运行结果
    在这里插入图片描述

    2、删除指定的目录(包括子目录)
    public static void main(String[] args) {
        File file = new File("D:\\a");
        method(file);
    }
    //删除指定目录下的文件
    public static void method(File file){
        //删除自己所有的子文件和子目录
        //获取子文件和子目录
        if (file.isDirectory()){
            File[] files = file.listFiles();
            for (File file1 : files) {
                if (file1.isFile()){
                    System.out.println(file1.getName());
                    //干掉它
                    file1.delete();
                }else if (file1.isDirectory()){
                    //继续查看
                    method(file1);
                }
            }
            //干掉自己
            System.out.println(file.getName());
            file.delete();
        }
    }
    

    代码运行结果
    在这里插入图片描述

    学习过程中一定要稳下来,不要急,要注意多总结,以便日后复习。

    展开全文
  • JAVA基础知识之File类

    万次阅读 多人点赞 2018-07-13 10:46:30
    一、File类定义 1. File类主要是JAVA为文件这块的操作(如删除、新增等)而设计的相关类 2. File类的包名是java.io,其实现了Serializable, Comparable两大接口以便于其对象可序列化和比较public class File ...

    一、File类定义

                1. File类主要是JAVA为文件这块的操作(如删除、新增等)而设计的相关类

                2. File类的包名是java.io,其实现了Serializable, Comparable两大接口以便于其对象可序列化和比较

    public class File implements Serializable,Comparable<File>
    {
    }

    二、File类实例域

    1) path :封装的String类型变量,代表了文件的路径

     private String path;
     public String getPath() 
    {
            return path;
    }
    

    2) separatorChar:静态常量,代表了运行该程序的系统的路径分隔符,windows系统为"\" ,linux系统为“/”

     public static void main(String[] args)
    {
        
        System.out.println(File.separator); //在windows系统下运行结果为\
        
    }

    3)  separator :静态常量,是由separatorChar扩展而来的字符串型常量,运行结果和separatorChar一样

    public static final String separator = "" + separatorChar;

    4)pathSeparatorChar :静态常量,代表用于分割多个路径的系统分隔符。 在UNIX系统上,此字符为':'而 Windows系统上它是';'

     public static void main(String[] args)
    {
        
        System.out.println(File.pathSeparator); //运行结果为;
    }

    5)pathSeparator: 静态常量,由pathSeparatorChar扩展而来的字符串,运行结果和pathSeparatorChar一样

     public static final String pathSeparator = "" + pathSeparatorChar;

    三、File类构造函数

    注意:构造函数只是创建一个File实例,并没有以文件做读取等操作,因此路径即使是错误的,也可以创建实例不报错

    1)通过给定的字符串路径(一般是文件的绝对路径)转为抽象路径名用来创建File实例,当传入null时会抛出NullPointerException空异常错误

        public File(String pathname) {}
    public class Test2
    {
    
     public static void main(String[] args)
    {
         File file=new File("xxx");
    
        System.out.println(file.getPath());  //路径结果就是xxx
    }
    }

    2)从父路径名字符串和子路径名字符串(一般是相对父类的相对路径)创建新的File实例

    public File(String parent, String child) {}

         2.1) 若子路径child为Null,会抛出NullPointerException空异常错误

         2.2) 当父路径为Null时,会以子路径child作为绝对路径创建实例,等同于调用第一个File(String child )效果一样

    public class Test2
    {
    
     public static void main(String[] args)
    {
         String parent=null;
         
         File file=new File(parent,"xxx");
    
        System.out.println(file.getPath());  //路径结果就是xxx
    }
    }

        2.3) 当父路径不为空时,会以父路径作为目录,子路径作为父路径下的目录或者文件名,最后得到的实例对象的路径就是父路径和子路径的组合

    public class Test2
    {
    
        public static void main(String[] args)
        {
            String parent = "E:/test";
            
            File parentFile= new File(parent);
    
            String child = "E:/test/1.txt";
    
            File file = new File(parentFile, child);
    
            System.out.println(file.getPath()); // 路径结果就是E:\test\E:\test\1.txt
        }
    }

    3)通过父路径File实例对象和子路径字符串创建新的File实例,等同于上面的方法中把父路径字符串创建File实例然后传入一样

    public class Test2
    {
    
        public static void main(String[] args)
        {
            String parent = "E:/test";
            
            File parentFile= new File(parent);
    
            String child = "E:/test/1.txt";
    
            File file = new File(parentFile, child);
    
            System.out.println(file.getPath()); // 路径结果就是E:\test\E:\test\1.txt
        }
    }

    4)通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例,这个方法暂时没有看懂,需要查阅资料加深理解

    public File(URI uri) {}

    四、File类中的各种常用方法

           下面是我E盘下test文件夹的文件情况,以此作为案例


    1)获取实例对象代表的文件名字(包含文件后缀)

    public String getName()}
    public class Test2
    {
    
        public static void main(String[] args) throws URISyntaxException
        {
    
            File file = new File("E:/test/1.txt");
    
            File file2 = new File("E:/test/异常1.jpg");
    
            File file3 = new File("xxx"); // 错误路径
    
            System.out.println(file.getName()); // 结果是1.txt
    
            System.out.println(file2.getName()); // 结果是异常1.jpg
    
            System.out.println(file3.getName()); // 结果是xxx
    
        }
    }

    2)获取实例对象代表的文件上级目录

    public String getParent()
    public class Test2
    {
    
        public static void main(String[] args) throws URISyntaxException
        {
    
            File file = new File("E:/test/1.txt");
    
            File file2 = new File("E:/test/异常1.jpg");
    
            File file3 = new File("xxx"); // 错误路径
    
            System.out.println(file.getParent()); // 结果是E:\test
    
            System.out.println(file2.getParent()); // 结果是E:\test
    
            System.out.println(file3.getParent()); // 结果是null
    
        }
    }
    

    3)获取实例对象的父项的实例对象,如果此路径名未指定父目录,则返回null;也就是获取对象的上级目录然后再实例化一个对象

    public File getParentFile()
    public class Test2
    {
    
        public static void main(String[] args) throws URISyntaxException
        {
    
            File file = new File("E:/test/1.txt");
    
            File file2 = new File("E:/test/异常1.jpg");
    
            File file3 = new File("xxx"); // 错误路径
    
            System.out.println(file.getParentFile()); // 结果是E:\test
    
            System.out.println(file2.getParentFile()); // 结果是E:\test
    
            System.out.println(file3.getParentFile()); // 结果是null
    
        }
    }

    4)获取实例对象代表的文件的实际路径

    public String getPath()
    public class Test2
    {
    
        public static void main(String[] args) throws URISyntaxException
        {
    
            File file = new File("E:/test/1.txt");
    
            File file2 = new File("E:/test/异常1.jpg");
    
            File file3 = new File("xxx"); // 错误路径
    
            System.out.println(file.getPath()); // 结果是E:\test\1.txt
    
            System.out.println(file2.getPath()); // 结果是E:\test\异常1.jpg
    
            System.out.println(file3.getPath()); // 结果是xxx
    
        }
    }
    

    5)检测该实例对象代表的文件的路径是否是绝对路径(windows系统中路径是以驱动盘开始的就是绝对路径)

    public boolean isAbsolute()
    public class Test2
    {
    
        public static void main(String[] args) throws URISyntaxException
        {
    
            File file = new File("E:/test/1.txt");
    
            File file2 = new File("E:/test/异常1.jpg");
    
            File file3 = new File("xxx"); // 错误路径
    
            System.out.println(file.isAbsolute()); // 结果是true
    
            System.out.println(file2.isAbsolute()); // 结果是true
    
            System.out.println(file3.isAbsolute()); // 结果是false
    
        }
    }
    

    6)获取实例对象代表的文件的绝对路径

    public String getAbsolutePath()
    public class Test2
    {
    
        public static void main(String[] args) throws URISyntaxException
        {
    
            File file = new File("E:/test/1.txt");
    
            File file2 = new File("E:/test/异常1.jpg");
    
            File file3 = new File("xxx"); // 错误路径
    
            System.out.println(file.getAbsolutePath()); // 结果是E:\test\1.txt
    
            System.out.println(file2.getAbsolutePath()); // 结果是E:\test\异常1.jpg
    
            System.out.println(file3.getAbsolutePath()); // 结果是D:\workspace\lettcode\xxx(编译器的工作空间作为解析目录了)
    
        }
    }

    7)实例对象代表的文件是否存在

    public boolean exists()
    public class Test2
    {
    
        public static void main(String[] args) throws URISyntaxException
        {
    
            File file = new File("E:/test/1.txt");
    
            File file2 = new File("E:/test/异常1.jpg");
    
            File file3 = new File("xxx"); // 错误路径
    
            System.out.println(file.exists()); // 结果是true
    
            System.out.println(file2.exists()); // 结果是true
    
            System.out.println(file3.exists()); // 结果是false
    
        }
    }

    8)检测实例对象代表的是否是文件

    public boolean isFile()
    public class Test2
    {
    
        public static void main(String[] args) throws URISyntaxException
        {
    
            File file = new File("E:/test/1.txt");
    
            File file2 = new File("E:/test/异常1.jpg");
    
            File file3 = new File("xxx"); // 错误路径
    
            System.out.println(file.isFile()); // 结果是true
    
            System.out.println(file2.isFile()); // 结果是true
    
            System.out.println(file3.isFile()); // 结果是false
    
        }
    }

    9)检测实例对象代表的是否是目录

    public boolean isDirectory()
    public class Test2
    {
    
        public static void main(String[] args) throws URISyntaxException
        {
    
            File file = new File("E:/test/1.txt");
    
            File file2 = new File("E:/test/异常1.jpg");
    
            File file3 = new File("xxx"); // 错误路径
    
            System.out.println(file.isDirectory()); // 结果是false
    
            System.out.println(file2.isDirectory()); // 结果是false
    
            System.out.println(file3.isDirectory()); // 结果是false
    
        }
    }

    10)创建新文件--当且仅当实例对象代表的文件不存在时才可以创建新文件

    public boolean createNewFile()  throws IOException
    public class Test2
    {
    
        public static void main(String[] args) throws  IOException
        {
    
            File file = new File("E:/test/1.txt");
            
            File file2 = new File("E:/test/异常1.jpg");
    
            File file3 = new File("xxx"); // 错误路径
    
            System.out.println(file.createNewFile()); // 结果是false,已经存在无法创建
    
            System.out.println(file2.createNewFile()); // 结果是false,已经存在无法创建
    
            System.out.println(file3.createNewFile()); // 结果是true,不存在可以创建
    
        }
    }
    

    创建的XXX文件的目录地址是以编译器的工作空间为上级目录加上创建实例对象的时候的路径名形成最后的路径



     11)删除实例对象代表的文件或目录,当代表目录时,必须目录下为空才可以删除

    public boolean delete()
    public class Test2
    {
    
        public static void main(String[] args) throws  IOException
        {
    
            File file = new File("E:/test/");
            
            File file2 = new File("E:/test/异常1.jpg");
    
            File file3 = new File("xxx"); // 错误路径
    
            System.out.println(file.delete()); // 结果是false,目录无法删除
    
            System.out.println(file2.delete()); // 结果是true,文件可以删除
    
            System.out.println(file3.delete()); // 结果是true,文件可以删除
    
        }
    }
    

    执行方法后的test文件如下:



    12)根据实例对象的路径名创建目录(若目录已存在,则false;若路径是文件,则fasle;若路径的上级目录不存在则false)

    public boolean mkdir()
    public class Test2
    {
    
        public static void main(String[] args) throws IOException
        {
    
            File file = new File("E:/test1/");
    
            File file2 = new File("E:/test2/异常1.jpg");
    
            File file3 = new File("E:/ceshi");
    
            File file4 = new File("E:/ceshi2/2018");
    
            System.out.println(file.mkdir()); // false 因为test1目录已存在
    
            System.out.println(file2.mkdir()); // false,因为上级目录test2不存在
    
            System.out.println(file3.mkdir()); // true,因为ceshi目录不存在且是上级目录是E盘存在的
    
            System.out.println(file4.mkdir()); // false,因为ceshi2目录不存在,所以不成功
    
        }
    }


    13)根据实例对象的路径创建目录,包括创建那些必须的且不存在的父级目录

    public boolean mkdirs()
    public class Test2
    {
    
        public static void main(String[] args) throws IOException
        {
    
            File file = new File("E:/test1/");
    
            File file2 = new File("E:/test2/异常1.jpg");
    
            File file3 = new File("E:/ceshi");
    
            File file4 = new File("E:/ceshi2/zhagnsan");
    
            System.out.println(file.mkdirs()); // false 因为test1目录已存在
    
            System.out.println(file2.mkdirs()); // true,因为目录不存在所以可以创建,但注意生成的异常1.jpg是文件夹不是图片
    
            System.out.println(file3.mkdirs()); // true,因为目录不存在所以可以创建
    
            System.out.println(file4.mkdirs()); // true,因为目录不存在所以可以创建
    
        }
    }
    

    14) 获取实例对象代表的文件下的各级文件名和目录名,返回一个字符串数组      

    public String[] list()

            1.  当实例对象代表的是文件不是目录时,返回NUll对象

            2.  获取的是该目录下的文件名和目录名,并不包含该目录名称和其上级目录名称

            3.  字符串数组中都是文件名或目录名并不是路径名

            4.  字符串中的元素并不是按照实际系统中目录下的顺序排列的

    例如E盘test文件夹里面是这样的



    调用list方法

    public class Test2
    {
    
        public static void main(String[] args) throws IOException
        {
    
            File file2 = new File("E:/test");
    
            String[] list = file2.list();
    
            for (int i = 0; i < list.length; i++)
            {
                System.out.println(list[i]); // 结果为1.txt、xxx、工资表.xls、异常1.jpg、第一个目录、第三个目录
            }
    
        }
    }

    15)获取实例对象代表的文件下的各级文件名和目录名并指定过滤器进行过滤,返回一个字符串数组     

    public String[] list(FilenameFilter filter)

        1. 过滤器是FilenameFilter类对象,当传入null时,效果和list()方法一样

        2. 过滤器是指过滤掉不符合名称的名字

        3. FilenameFilter 是一个接口,因此需要自己新建一个类来实现该接口作为参数传入进去

        4.仔细研究方法的源码可以发现,所谓过滤就是要重写FilenameFilter的accept方法并在方法中过滤

    public String[] list(FilenameFilter filter) {
            String names[] = list();
            if ((names == null) || (filter == null)) {
                return names;
            }
            List<String> v = new ArrayList<>();
            for (int i = 0 ; i < names.length ; i++) {
                if (filter.accept(this, names[i])) {  //必须重写accept方法,并在方法内对传入的name进行判定是否合乎过滤条件
                    v.add(names[i]);
                }
            }
            return v.toArray(new String[v.size()]);
        }
    

          5. 例如我们只要后缀名是txt的文件名称,那么可以按照以下逻辑来处理

    创建FilenameFilter的实现类TxtFilter并重写accept方法,在方法中进行判定

    public class TxtFilter implements FilenameFilter
    {
    
        @Override
        public boolean accept(File dir, String name)
        {
            if(name.endsWith(".txt"))
            {
                return true;
            }
            return false;
        }
    
    }

    但是仔细思考,如果我还需要过滤.java结束的呢?难道又去重新创建实现类?因此可以用过滤条件作为构造参数传入构造方法中初始化其变量,这样就是可变的

    public class TxtFilter implements FilenameFilter
    {
    
        private String FilterName; // 作为过滤器名称变量
    
        public TxtFilter(String FilterName)
        {
    
            this.FilterName = FilterName; // 初始化构造过滤器名称,这样就不用每次都创建新类
    
        }
    
        public String getFilterName()
        {
    
            return FilterName; // 公有的域访问器方法,提供接口获取
        }
    
        @Override
        public boolean accept(File dir, String name)
        {
    
            String fileterNameString = this.getFilterName(); // this代表着调用accept方法的变量
    
            if (name.endsWith(fileterNameString))
            {
                return true;
            }
            return false;
        }
    
    }

    我们测试下结果

    public class Test2
    {
    
        public static void main(String[] args) throws IOException
        {
    
            File file2 = new File("E:/test");
            
            TxtFilter filter=new TxtFilter(".txt"); //过滤器,只需要.txt结尾的
            
            String[] list = file2.list(filter);
    
            for (int i = 0; i < list.length; i++)
            {
                System.out.println(list[i]); // 结果为1.txt
            }
    
        }
    }



      


    展开全文
  • File类

    千次阅读 2019-06-21 17:33:50
    File类 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。 构造方法 public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。...

    File类

    java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。

    • 构造方法
      public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
      public File(String parent, String child) :从父路径名字符串和子路径名字符串创建新的 File实例。
      public File(File parent, String child) :从父抽象路径名和子路径名字符串创建新的 File实例。

    • java.io.File类
      文件和目录路径名的抽象表示形式。
      java把电脑中的文件和文件夹(目录)封装为了一个File类,我们可以使用File类对文件和文件夹进行操作
      我们可以使用File类的方法
      创建一个文件/文件夹
      删除文件/文件夹
      获取文件/文件夹
      判断文件/文件夹是否存在
      对文件夹进行遍历
      获取文件的大小
      File类是一个与系统无关的类,任何的操作系统都可以使用这个类中的方法

      重点:记住这三个单词
      file:文件
      directory:文件夹/目录
      path:路径

    • static String pathSeparator 与系统有关的路径分隔符,为了方便,它被表示为一个字符串。
      static char pathSeparatorChar 与系统有关的路径分隔符。
      static String separator 与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。
      static char separatorChar 与系统有关的默认名称分隔符。
      操作路径:路径不能写死了
      C:\develop\a\a.txt windows
      C:/develop/a/a.txt linux
      “C:”+File.separator+“develop”+File.separator+“a”+File.separator+“a.txt”

    • 绝对路径和相对路径
      绝对路径:从盘符开始的路径,这是一个完整的路径。
      相对路径:相对于项目目录的路径,这是一个便捷的路径,开发中经常使用。

    • 路径:
      绝对路径:是一个完整的路径
      以盘符(c:,D:)开始的路径
      c:\a.txt
      C:\Users\itcast\IdeaProjects\shungyuan\123.txt
      D:\demo\b.txt
      相对路径:是一个简化的路径
      相对指的是相对于当前项目的根目录(C:\Users\itcast\IdeaProjects\shungyuan)
      如果使用当前项目的根目录,路径可以简化书写
      C:\Users\itcast\IdeaProjects\shungyuan\123.txt–>简化为: 123.txt(可以省略项目的根目录)
      注意:
      1.路径是不区分大小写
      2.路径中的文件名称分隔符windows使用反斜杠,反斜杠是转义字符,两个反斜杠代表一个普通的反斜杠

    • File类的构造器

    1. File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
      参数:
      String pathname:字符串的路径名称
      路径可以是以文件结尾,也可以是以文件夹结尾
      路径可以是相对路径,也可以是绝对路径
      路径可以是存在,也可以是不存在
      创建File对象,只是把字符串路径封装为File对象,不考虑路径的真假情况

    2. File(String parent, String child) 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
      参数:把路径分成了两部分
      String parent:父路径
      String child:子路径
      好处:
      父路径和子路径,可以单独书写,使用起来非常灵活;父路径和子路径都可以变化

    3. File(File parent, String child) 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
      参数:把路径分成了两部分
      File parent:父路径
      String child:子路径
      好处:
      父路径和子路径,可以单独书写,使用起来非常灵活;父路径和子路径都可以变化
      父路径是File类型,可以使用File的方法对路径进行一些操作,再使用路径创建对象

    • File类获取功能的方法

      • public String getAbsolutePath() :返回此File的绝对路径名字符串。
      • public String getPath() :将此File转换为路径名字符串。
      • public String getName() :返回由此File表示的文件或目录的名称。
      • public long length() :返回由此File表示的文件的长度。
    • 判断功能的方法
      public boolean exists() :此File表示的文件或目录是否实际存在。
      public boolean isDirectory() :此File表示的是否为目录。
      public boolean isFile() :此File表示的是否为文件。

    • File类创建删除功能的方法

      • public boolean createNewFile() :当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。

      • public boolean delete() :删除由此File表示的文件或目录。

      • public boolean mkdir() :创建由此File表示的目录。

      • public boolean mkdirs() :创建由此File表示的目录,包括任何必需但不存在的父目录。

        public boolean createNewFile() :当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。
        创建文件的路径和名称在构造方法中给出(构造方法的参数)
        返回值:布尔值
        true:文件不存在,创建文件,返回true
        false:文件存在,不会创建,返回false
        注意:
        1.此方法只能创建文件,不能创建文件夹
        2.创建文件的路径必须存在,否则会抛出异常

        public boolean createNewFile() throws IOException
        createNewFile声明抛出了IOException,我们调用这个方法,就必须的处理这个异常,要么throws,要么trycatch

    • public boolean mkdir() :创建单级空文件夹
      public boolean mkdirs() :既可以创建单级空文件夹,也可以创建多级文件夹
      创建文件夹的路径和名称在构造方法中给出(构造方法的参数)
      返回值:布尔值
      true:文件夹不存在,创建文件夹,返回true
      false:文件夹存在,不会创建,返回false;构造方法中给出的路径不存在返回false
      注意:
      1.此方法只能创建文件夹,不能创建文件

    • public boolean delete() :删除由此File表示的文件或目录。
      此方法,可以删除构造方法路径中给出的文件/文件夹
      返回值:布尔值
      true:文件/文件夹删除成功,返回true
      false:文件夹中有内容,不会删除返回false;构造方法中路径不存在false
      注意:
      delete方法是直接在硬盘删除文件/文件夹,不走回收站,删除要谨慎

    目录的遍历

    • File类遍历(文件夹)目录功能
      - public String[] list() :返回一个String数组,表示该File目录中的所有子文件或目录。
      - public File[] listFiles() :返回一个File数组,表示该File目录中的所有的子文件或目录。
      注意:
      list方法和listFiles方法遍历的是构造方法中给出的目录
      如果构造方法中给出的目录的路径不存在,会抛出空指针异常
      如果构造方法中给出的路径不是一个目录,也会抛出空指针异常
    展开全文
  • File类是什么

    2019-03-21 09:46:21
    File(文件),这个名字是有误导性的,我们可能认为它指代的是文件,实际上并非如此, 它既能代表一个特定文件的名称, 也能代表一个目录下的一组文件的名称, 如果它指定的是一个文件集,我们就可以对此集合调用...

    File(文件)类,这个名字是有误导性的,我们可能认为它指代的是文件,实际上并非如此,

    File file = new File(path+fileName);
    

    它既能代表一个特定文件的名称, 也能代表一个目录下的一组文件的名称,

    如果它指定的是一个文件集,我们就可以对此集合调用list()方法,该方法会返回一个字符数组,

    实际上,FilePath(文件路径)对这个类来说是个更好的名字。

    展开全文
  • Java之File类详解

    2018-09-11 14:33:07
    3 File类常用的方法总结 3.1 创建 3.2 删除 3.3 判断 3.4 获取 1 构造方法 public File(String pathname) { } public File(String parent, String child) { } public File(File parent, Strin...
  • File类详解

    万次阅读 2016-06-04 13:24:43
    File类详解 ONE Goal ,ONE Passion ! File类是我们接触的比较多的类,当初学习是真是傻傻分不清啊.今天就总结一下file的一些比较不好区分的地方.首先:当然就是构造方法File f = new File("文件路径") File f = new ...
  • 简述File类的作用及方法

    千次阅读 2019-04-25 21:33:34
    简述File类的作用 一个File对象而可以代表一个文件或目录, File可以实现获取文件和目录属性等功能, 可以实现对文件和目录的创建,删除等功能 File类操作目录与文件的常用方法有哪些 文件方法: 对象名....
  • java.io.File类代表系统文件名(路径和文件名) (1)File类常见的构造方法: //以pathname为路径创建File对象,如果pathname是相对路径则默认当前路径在系统属性user.dir中存储 public File(String pathname) { ...
  •  要知道File类在java.io.File包中,所以要导入这个包。  File类中用到的方法:  boolean isDirectory() 测试此抽象路径名表示的文件是否是个目录  File[] listFiles() 返回一个抽象路径名数组,这些路径名...
  • c语言中用FILE类型的使用

    万次阅读 2018-07-09 10:55:25
    FILE是一特殊的指针,用来操作 文件。fp=fopen("文件名","r");调用fopen()函数,尝试打开同目录下的文件名相同的文件,参数“r"代表以只读方式打开。如果打开成功,则将文件起始位置 ...
  • Java 通过使用File类获取文件信息

    万次阅读 2012-03-24 09:29:30
    import java.io.File; import java.util.Date; public class lzwCode { public static void main(String [] args) { String filePath = "src/com/lzw/demo/StackTest/lzwCode.java"; //指定文件路径 File...
  • 作者:jackliuemail:suntoday@eyou.com当你安装了jdk,在...File类:java.lang.Object|+--java.io.FileFile类扩展了Object对象,实现了Serializable, Comparable定义的接口,可以通过File的一个实例对jvm上的文件系统进
  • import java.io.File; import java.io.IOException;public class FileApp { public static void main(String[] arg){ //创建一个java目录 File file = new File("java"); if(!file.exists()){
  • java file inputstream string 相互转换

    万次阅读 2011-01-14 13:30:00
    InputStream is = Thread.currentThread().getContextClassLoader() .getResourceAsStream("io/aa.txt");... File file = new File("fa"); FileUtils.writeStringToFile(file, str); Sys
  • Eclipse: class file editor: source not found 问题解决办法

    万次阅读 多人点赞 2014-02-20 15:38:06
    Eclipse: class file editor: source not found。。。。问题 在搜了很多资料之后,自己试验总结了下面的办法: 在eclipse编辑器中,当点击某个时,想看一下这个的具体实现,但是总是出现  Class File ...
  • 返回值类型不同:前者为String数组,后者为File对象数组 2.数组中元素内容不同:前者为string类型的【文件名】(包含后缀名),后者为File对象类型的【完整路径】 因此,遍历文件夹中所有文件,包括子文件夹中...
  • byte[] 转 file

    千次阅读 2018-07-18 16:22:46
    /** * byte[] 转 file * @param bytes ... * @see [#方法、#成员] */ public static void byteToFile(byte[] bytes, String path) { try { // 根据绝对路径初始化文件 File localFi...
  • JAVA获取当前项目和文件所在路径

    万次阅读 2020-07-16 14:35:00
    File file = new File(""); String filePath = file.getCanonicalPath(); System.out.println(filePath); //当前项目下xml文件夹 File file1 = new File(""); String filePath1 = file1.getCanonicalPa
  • file 转换MultipartFile

    万次阅读 2016-12-12 13:50:48
    因为工作中的业务需要,需要将file转换为Spring专有的MultipartFile。 过程 结论过程spring通过MultipartFile来实现文件上传,查看相关的源码后,会发现原理十分简单。 首先,打开MultipartFile,发现这是一个接口,...
  • java File类 简单用法举例

    万次阅读 多人点赞 2011-07-20 19:38:39
    File类简单用法! import java.io.File; import java.io.IOException; public class TestFile { public void createFile(String path){ File fi
1 2 3 4 5 ... 20
收藏数 1,467,114
精华内容 586,845
关键字:

file类