精华内容
下载资源
问答
  • File类

    千次阅读 2019-06-21 15:21:21
    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方法遍历的是构造方法中给出的目录
      如果构造方法中给出的目录的路径不存在,会抛出空指针异常
      如果构造方法中给出的路径不是一个目录,也会抛出空指针异常
    展开全文
  • Android File类

    千次阅读 2017-02-07 16:02:03
    Android File类

    Android File类

    File有四个构造函数
    public File(File dir,String name)
    参数为File和String,File制定构造的新的File对象的路径,而String制定新的File名字
    Public File(String path)
    参数为String,构造一个新的File使用制定的路径
    public File(String dirPath,String name)
    dirPath为指定的文件路径,name为文件的名字
    public File(URI uri)
    构造新的文件使用URI指定路径
    File getFilesDir()
    返回路径中的目录,并且保持应用程序文件。在这里获取到的是/data/data//files目录,返回一个File
    File  getCacheDir()
    方法用于获取/data/data//cache目录
    boolean delete()
    删除文件
    public boolean equals (Object obj)
    判断obj和调用的对象是否相同
    public File getAbsoluteFile()
    返回一个新的文件,该文件的绝对路径是调用的File的路径
    public String getAbsoluteFile()
    返回该文件的绝对路径
    public long getFreeSpace()
    返回在分区上剩余的字节数量,包括当前File的路径
    public String getName()
    返回文件的名称
    public String getPath()
    返回文件的相对路径
    public String getAbsoultePath()
    返回文件的绝对路径
    public long getTotalSpace()
    返回分区的总字节大小
    public long getUsableSpace()
    返回分区可用字节的大小
    public boolean IsDirectory()
    判断是否为文件夹
    public boolean IsFile()
    判断是否为文件
    public boolean isHidden()
    判断是否为操作系统定义的隐藏文件
    public long lastModified()
    返回最后一次修改该文件的时间,以毫秒计算,从1970年1月1日开始算
    public long length()
    返回文件的长度,单位为字节
    public boolean mkdir()
    创建一个文件夹,当父目录存在才能成功创建
    public boolean mkdirs()
    创建一个文件夹,可可附带创建父目录
    public boolean renameTo(File newPath)
    重命名newpath文件夹
    public boolean setWritable(boolean writable,boolean ownerOnly)
    writable 如果为真,对该文件有写权限,否则没有
    ownerOnly 如果为真,只对文件的拥有者有写权限,否则,对其他人也有写权限。
    public boolean setWritable(boolean writable,true)
    同setWritable(writable,true)一个意思
    public boolean setReadOnly()
    对文件只有读权限
    public boolean setReadable(boolean readable,boolean ownerOnly)
    readable 如果为真,对该文件有读权限
    ownerOnly 如果为真,只对文件的拥有者有读权限,否则,对其他人也有读权限
    public boolean setReadable(boolean readable)
    同setReadable(boolean readable,true)一个意思
    public String toString()
    toString是一个Object类的方法,可以返回一个对象的字符串表示。
    public URI toURI()
    返回一个文件的URI

    android的文件操作要有权限:
    判断SD卡是否插入
    Environment.getExternalStorageState().equals(
    android.os.Environment.MEDIA_MOUNTED);
    获得sd卡根目录
    File skRoot = Environment.getExternalStorageDirectory();
    获得私有根目录
    File fileRoot = Context.getFilesDir()+"";
    确定或获得文件夹和文件路径
    String path = File.getPath();//相对
    String path = File.getAbsoultePath();//绝对
    获得文件或文件夹的父目录
    String parentPath = File.getParent()
    获得文件或文件夹的名称:
    String Name = File.getName();
    建立文件或文件夹
    File.createNewFile();//建立文件
    判断是文件或文件夹
    File.isDirectory()
    列出文件夹下的所有文件和文件夹名
    File[] files = File.listFiles();
    修改文件夹和文件名
    File.renameTo(dest);
    删除文件夹或文件
    File.delete();
    文件读写操作模式
    Context.MODE_PRIVATE:新内容覆盖原内容
    Context.MODE_APPEND:新内容追加到原内容后
    Context.MODE_WORLD_READABLE:允许其他应用程序读取
    Context.MODE_WORLD_WRITEABLE:允许其他应用程序写入,会覆盖原数据。


    展开全文
  • 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
            }
    
        }
    }



      


    展开全文
  • Java中File类-7-File类和构造方法

    千次阅读 2018-07-05 00:12:40
    在Java中,File类的相关操作是很多,程序的业务代码一般就是直接操作数据。数据主要是来源数据库或者各种各样的文件类型。这篇开始,用几篇文章来记录学习File类的过程。在Selenium自动化测试中,我们用到过File类来...

          在Java中,File类的相关操作是很多,程序的业务代码一般就是直接操作数据。数据主要是来源数据库或者各种各样的文件类型。这篇开始,用几篇文章来记录学习File类的过程。在Selenium自动化测试中,我们用到过File类来写日志输出到文件的功能,还有截图的底层也是File来实现的。

    1.File类的概述

          打开JDK API,搜索File,可以找到是java.io包下的一个类。第一句话就告诉你File应该理解成路径,而不是文件。路径包括文件夹路径和文件路径。路径分成绝对路径和相对路径,我们在web ui自动化中抓元素,xpath表达式有时候也有绝对路径和相对路径。在windows系统中,一个文件的绝对路径就是指带上盘符的完整文件路径。在Eclipse项目中,文件相对路径,意思是该文件和当前Java项目根目录在同一个文件夹,才能采用open("abc.txt")这样的相对路径写法,其实abc.txt就在java项目根路径下。

    2.File的构造方法

          在API文档中,File类下有4个构造方法,下面我们来学习前面三个构造方法,第四个是j2ee开发的会使用的,uri是http协议中的内容,这里先不管这个方法。下面注释提到的抽象二字不用管,直接忽略,这里理解才不会别扭。


    2.1 构造方法 File(String pathname)

          这个构造方法,很好理解,根据一个路径名称得到一个File对象。下面我们提前在桌面创建一个abc.txt文件,随便里面文件内容写什么,然后利用这个构造方法去得到这个文件对象,然后判断这个文件是否存在。

    package file;
    
    import java.io.File;
    
    public class Demo1_File {
    
    	public static void main(String[] args) {
    		File file = new File("C:\\Users\\Administrator\\Desktop\\abc.txt");
    		System.out.println(file.exists());
    	}
    
    }
    

    运行打印出来是true,这里你可以试试修改成abd.txt,那么打印出来就是false。

    2.2 构造方法File(String Parent, String child)

    这个构造意思是根据一个目录和子目录得到File对象。如果我们想对某一个文件路径下的多个文件进行操作,这个时候采用这个构造函数就显示优势。

    package file;
    
    import java.io.File;
    
    public class Demo1_File {
    
    	public static void main(String[] args) {
    		String parent = "C:\\Users\\Administrator\\Desktop";
    		String child = "abc.txt";
    		File file = new File(parent,child);
    		System.out.println(file.exists());
    	}
    
    }
    
    2.3 构造函数File(File parent, String child)

           这个构造函数和第二个有点相同,唯一的区别就参数parent是一个File对象。这个函数的好处就是可以对parent进行File相关的操作,例如打印父路径下有多少个文件等

    package file;
    
    import java.io.File;
    
    public class Demo1_File {
    
    	public static void main(String[] args) {
    		File parent = new File("C:\\Users\\Administrator\\Desktop");
    		String child = "abc.txt";
    		File file = new File(parent,child);
    		System.out.println(file.exists());
    		System.out.println(parent.exists());
    	}
    
    }
    
           上面代码我们对parent进行File相关方法调用测试,这个好处显然比第二个构造方法要灵活多。由于我们还没有学习File类下的各种方法,这篇就学习了exitsts()方法,判断文件对象是否存在,后面我们分类来学习File对象不同方法,从而去掌握File类的基本使用。




    展开全文
  • File类详解

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

    千次阅读 多人点赞 2021-01-20 11:44:09
    Java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。File 类的实例是不可变的;也就是说,一旦创建,File 对象表示的抽象路径名将永不改变。 重点有三个单词需要记住:file...
  • Java中File类-9-File类的判断功能

    千次阅读 2018-07-05 23:53:30
    本篇来学习File类的判断功能,主要的判断有:判断是否是目录,判断是否是文件,判断是否存在,判断是否可读,判断是否可写,判断是否隐藏。前面我们知道了判断是否存在这个方法,下面我们一次学习其他方法。1.判断...
  • Java中File类-10-File类的的获取功能

    千次阅读 2018-07-08 00:02:19
    接着来学习Java中的File类的方法,这篇来学习获取功能,也就是API文档中看到的getxxx方法。主要有获取绝对路径,获取路径,获取名称,获取长度,字节数,获取最后一次修改时间,毫秒值,获取指定路径下所有文件或者...
  • File类创建文件

    千次阅读 2019-04-17 19:46:56
    File类是java.io包下代表与java平台无关的文件和目录的类。在程序中操作文件和目 录,就是使用File类来完成。注意,不管是文件还是目录都是使用File来操 作的,File能新建、删除、重命名文件和目录,但是File不能...
  • 本篇来学习Java中File类的创建功能,打开API文档,搜索并打开File页,能找到三个创建的方法:createNewFile() mkdir() mkdirs() ,三个方法返回都是布尔类型。然后再看看重命名和删除功能。 1.方法createNewFile() ...
  • 简化 java.io.File 的源码和方法

    万次阅读 2020-09-24 06:58:08
    public class File implements Serializable, Comparable<File>{ private final String path;// 存储路径 private final transient int prefixLength;// 前缀长度 private static final FileSystem fs = ...
  • FTPFile类

    千次阅读 2016-05-30 10:16:23
    org.apache.commons.net.ftp 类FTPFile java.lang.Object org.apache.commons.net.ftp.ftpfile ...该FTPFile类用于表示信息的文件存储 ftp服务器上。 参见:ftpfileentryparser,
  • java中File类方法详解

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

    千次阅读 2016-05-12 17:28:28
    疯狂java讲义读书笔记之File类的使用详解File类是java io包下代表与平台无关的文件和目录,也就是说,如果希望在程序中操作文件和目录,都可以通过File类来完成。File不能访问文件内容本身。如果需要访问文件内容...
  • Java中的File类

    千次阅读 2021-03-14 22:44:04
    Java中的File类 一.File类的介绍 File的每一个实例是表示硬盘上的一个文件或者目录: 使用File: 1.访问其表示的文件或者目录的属性信息(大小,名字等) 2.操作文件或者目录(创建,删除) 3.访问一个目录...
  • 详述java的File类常用方法

    千次阅读 多人点赞 2019-08-21 17:17:27
    File类File类代表一个特定的文件或者目录(文件夹),并提供了若干方法对该文件或目录进行操作。 File类构造方法: 常用的有三种: 1、File(String pathname):通过路径名创建一个新 File 实例。 2、File(File ...
  • Java File类的详解

    千次阅读 2016-07-30 20:00:26
    File类说明 存储在变量,数组和对象中的数据是暂时的,当程序终止时他们就会丢失.为了能够永久的保存程序中创建的数据,需要将他们存储到硬盘或光盘的文件中.这些文件可以移动,传送,亦可以被其他程序使用.由于数据...
  • 谈一谈C#中File类和FileInfo类的区别

    千次阅读 2018-04-06 16:08:17
    File类是一个静态类,优点:调用简单;缺点:始终消耗CPU资源。FileInfo类是一个实例类,优点:调用完就释放CPU资源;缺点:操作复杂这里用一个读取一篇文章并包含空格,处理空格后,再写回去的操作来演示两者是如何...
  • Java中IO字符流、File类

    千次阅读 2019-06-04 23:37:56
    目录 一、概述 1、字符流分类: 2、FileWriter使用: 3、追加写入: 4、实现换行 5、五种writer方法的重载 6、FileReader的使用 7、BufferedXxx和FileXxx的区别: ...1、File类的概述和作用 2、Fil...
  • Android file类使用详解

    万次阅读 2018-07-16 10:32:11
    一.Android file类 在开发Android应用时免不了会跟文件打交道,本篇文章记录总结自己常用到的文件操作,数据的存储有多种方式,比如数据库存储、SharedPreferences存储、文件存储等;这里我们将要介绍最简单的文件...
  • File类文件路径详解

    千次阅读 2017-11-09 13:34:00
    File类文件路径详解
  • Java学习第 14 天-File 、I/O流

    千次阅读 2017-12-08 16:37:29
    1.File 2.I/O 流 1.File (重点) 1.1 基本概念 java.io.File 用于描述文件和目录的路径信息,可以获取文件的名称、大小等信息。 1.2常用方法 File(String pathname) — 根据参数指定的路径信息...
  • File类如何获取文件后缀名

    千次阅读 2020-03-26 19:53:06
    File类如何获取文件后缀名 public class Demo { public static void main(String[] args) { File file = new File("G:\\io\\a.txt"); //获取文件名 String name = file.getName(); //字符串截取(获取....
  • Android file类使用详解-SDcard

    千次阅读 2017-02-11 12:42:02
    Android file类使用详解-SDcard
  • android studio2.0导入xstream.jar后发现无法使用File类了,是什么原因?
  • C# 文件操作 File类和FileInfo类

    千次阅读 2017-03-01 15:59:10
    File类可以对文件进行读写,对单个文件处理的效率比FileInfo类高,File类的方法都是静态方法,调用的时候直接用类调用 using System; using System.Collections.Generic; using System.Linq; using System.Text; ...
  • Java-IO流——File类介绍

    千次阅读 2018-10-23 17:02:17
    File类概述 java.io.File代表与平台无关的文件或目录。也就是说可以通过File类在Java程序中操作文件或目录。 File类只能用来操作文件或目录(包括新建、删除、重命名文件和目录等操作),但不能用来访问文件中的...
  • DexFile类介绍

    千次阅读 2012-11-12 15:09:03
    public final class DexFile extends Object java.lang.Object dalvik.system.DexFile 概述 操作DEX文件。这个原理上和ZipFile相似。主要在装载器里被使用。 注意,我们不直接打开和...
  • java中File类的使用方法

    千次阅读 2016-08-30 13:54:54
    java中File类的使用方法

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,640,374
精华内容 656,149
关键字:

file类