美文网首页
Java--File I/O

Java--File I/O

作者: 年少懵懂丶流年梦 | 来源:发表于2017-06-13 00:36 被阅读37次

    java.io.File类用于表示文件(目录)。用来将文件或者文件夹封装成对象。
    File类只用于表示文件(目录)的信息(名称、大小等),不能用于文件内容的访问

    File类是IO包中唯一代表磁盘文件本身的对象。File类定义了一些与平台无关的方法来操纵文件,通过调用File类提供的各种方法,能够完成创建、删除文件,重命名文件,判断文件的读写权限及文件是否存在,设置和查询文件的最近修改时间等操作。

    1. File类

    1、创建File对象

    构造方法:

    File(File parent, String child)      // 根据 parent 抽象路径名和 child 路径名字符串创建一个新File实例。
    
    File(String pathname)      // 通过将给定路径名字符串转换为抽象路径名来创建一个新File实例。
    
    File(String parent, String child)       // 根据 parent 路径名字符串和 child 路径名字符串创建一个新File实例。
    
    File(URI uri)         // 通过将给定的file:URI 转换为一个抽象路径名来创建一个新的File实例。
    
    2、操作File的方法

    1、访问文件名相关的方法:

    String getName()            // 取得文件名
    String getPath()            // 取得文件路径
    File getAbsoluteFile()      // 获得该File对象的绝对路径
    String getAbsolutePath()        // 获得该File对象的绝对路径名
    String getParent()          // 获得父级目录名 
    boolean renameTo()      // 重命名
    

    2、文件检测相关方法:

    boolean exists()            // 判断文件是否存在
    boolean canExecute()        // 判断文件是否可执行
    boolean canWrite()          // 判断是否可写
    boolean canRead()           // 判断是否可读
    boolean isDirectory()       // 判断是否是目录
    boolean isFile()            // 判断是否是文件
    boolean isHidden()          // 判断是否是隐藏文件
    boolean isAbsolute()        // 判断是否是绝对路径名
    

    3、获取常规文件信息:

    long lastModified()             // 返回文件最后修改时间
    long length()                   // 返回的文件长度
    

    4、文件操作相关方法:

    boolean createNewFile()         // 创建新文件,创建成功返回true,否则返回false
    boolean delete()                // 删除文件
    static File createTempFile(String prefix, String suffix)  //  在默认临时文件目录中创建一个空文件,
                 使用给定前缀和后缀生成其名称。suffix 参数可以为 null,这时将使用默认的后缀“.tmp”
    static File createTempFile(String prefix, String suffix, File directory)  // 在指定目录 directory 中创建一个新的空文件,
                使用给定的前缀和后缀生成其名称。
    void deleteOnExit()     // 当Java虚拟机终止时删除File对象所对应的文件和目录
    

    5、目录操作相关的方法:

    boolean mkdir()         // 创建一级目录
    boolean mkdirs()            // 创建多级目录(包括所有必需但不存在的父目录)
    String[] list()          // 列出当前下所有文件和路径,返回String数组
    File[] listFiles()      // 列出当前下所有文件和路径,返回File数组
    static File[] listRoots()  // 列出磁盘所有的根路径
    

    Windows中使用的路径分割符

    • \\
    • /
    3. 文件过滤器

    在File类中:

    String[] list(FilemaneFilter filter)  // 返回一个字符串数组,这些字符串
                  指定此抽象路径名表示的目录中满足指定过滤器的文件和目录
    File[] listFiles(FileFilter filter)
    File[] listFiles(FilemaneFilter filter)
    

    FilemaneFilter 接口中只有一个抽象方法:

    boolean accept(File dir, String name)
    

    实现accept()方法,就是指定自己的规则,指定哪些文件应该由list()列出。

    public class FilenameFilterDemo {
        
        public static void main(String[] args) {
            File file = new File("D:/eclipse/workspace/ThreadDemo/");
            // 列出路径下的所有*.java文件以及文件夹
            String[] nameList = file.list(new FilenameFilter() {
                
                @Override
                public boolean accept(File dir, String name) {
                    if (name.endsWith(".java") || new File(name).isDirectory()) {
                        return true;
                    }
                    return false;
                }
            });
            
            for (String name : nameList) {
                System.out.println(name);
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:Java--File I/O

          本文链接:https://www.haomeiwen.com/subject/fdalqxtx.html