zoukankan      html  css  js  c++  java
  • Java中的File类

    详情见:

    https://www.cnblogs.com/black-mcy/p/10060333.html

            尽管java.io定义的大多数类是实行流式操作的,File类不是。它直接处理文件和文件系统。也就是说,File类没有指定信息怎样从文件读取或向文件存储;它描述了文件本身的属性。File对象用来获取或处理与磁盘文件相关的信息,例如权限,时间,日期和目录路径。此外,File还浏览子目录层次结构。很多程序中文件是数据的根源和目标。尽管它们在小应用程序中因为安全原因而受到严格限制,文件仍是存储固定和共享信息的主要资源。Java中的目录当成File 对待,它具有附加的属性——一个可以被 list( )方法检测的文件名列表。
            下面的构造函数可以用来生成File 对象:
             File(String directoryPath)
             File(String directoryPath, String filename)
             File(File dirObj, String filename)
    这里,directoryPath是文件的路径名,filename 是文件名,dirObj 一个指定目录的File 对象。下面的例子创建了三个文件:f1,f2,和f3。第一个File对象是由仅有一个目录路径参数的构造函数生成的。第二个对象有两个参数——路径和文件名。第三个File对象的参数包括指向f1文件的路径及文件名。f3和f2指向相同的文件。
    File f1 = new File("/");
    File f2 = new File("/","autoexec.bat");
    File f3 = new File(f1,"autoexec.bat");
    注意:Java 能正确处理UNIX和Windows/DOS约定路径分隔符。如果在Windows版本的Java下用斜线(/),路径处理依然正确。记住,如果你用Windows/DOS使用反斜线(/)的约定,你需要在字符串内使用它的转义序列(//)。Java约定是用UNIX和URL风格的斜线来作路径分隔符。
              File 定义了很多获取File对象标准属性的方法。例如getName( )返回文件名,getParent( )返回父目录名,exists( )在文件存在的情况下返回true,反之返回false。然而File类是不对称的。说它不对称,意思是虽然存在允许验证一个简单文件对象属性的很多方法,但是没有相应的函数来改变这些属性。下面的例子说明了几个File方法:
    // Demonstrate File.
     
    import java.io.File;
     
    class FileDemo {
       static void p(String s) {
            System.out.println(s);
       }
     
       public static void main(String args[]) {
            File f1 = new File("/java/COPYRIGHT");
            p("File Name: " + f1.getName());
            p("Path: " + f1.getPath());
            p("Abs Path: " + f1.getAbsolutePath());
            p("Parent: " + f1.getParent());
            p(f1.exists() ? "exists" : "does not exist");
            p(f1.canWrite() ? "is writeable" : "is not writeable");
            p(f1.canRead() ? "is readable" : "is not readable");
            p("is " + (f1.isDirectory() ? "" : "not" + " a directory"));
            p(f1.isFile() ? "is normal file" : "might be a named pipe");
            p(f1.isAbsolute() ? "is absolute" : "is not absolute");
            p("File last modified: " + f1.lastModified());
            p("File size: " + f1.length() + " Bytes");
       }
    }
    运行该程序,你将看到下面的结果:
    File Name: COPYRIGHT
    Path: /java/COPYRIGHT
    Abs Path: /java/COPYRIGHT
    Parent: /java
    exists
    is writeable
    is readable
    is not a directory
    is normal file
    is absolute
    File last modified: 812465204000
    File size: 695 Bytes
            大多数File方法是自说明的,但isFile( )和isAbsolute( )不是。isFile( )在被文件调用时返回true,在被目录调用时返回false。并且,isFile( )被一些专用文件调用时返回false,例如设备驱动程序和命名管道,所以该方法可用来判定文件是否作为文件执行。isAbsolute( )方法在文件拥有绝对路径时返回true,若是相对路径则返回false。
            File 还包括两个有用的实用工具方法。第一个是renameTo( ),显示如下:
            (1)boolean renameTo(File newName)
             这里,由newName指定的文件名变成了所调用的File 对象的新的名称。如果更名成功则返回ture,文件不能被重命名(例如,你试图重命名文件以使它从一个目录转到另一个目录,或者你使用了一个已经存在的文件名),则返回false。
            (2)第二个实用工具方法是delete( )
             该方法删除由被调用的File对象的路径指定的磁盘文件。它的形式如下:
             boolean delete( )
    同样可以在目录为空时用delete( )删除目录。如果删除了文件,delete( )返回true,如果文件不能被删除则返回false。Java 2 为File 类增添了一些新的方法,你会发现在某些场合这些新增方法很有用。
    一些最有趣的方法显示如下:
    方法 描述
    void deleteOnExit( ) 在java虚拟机终止时删除与调用对象相关的文件
    boolean isHidden( ) 如果调用的文件是隐藏的,返回true;否则返回 false。
    boolean setLastModified(long millisec) 设置由millisec指定的调用文件的时间标志,Millisec是从1970年1月1号开始的标准时间(UTC)的毫秒数
    boolean setReadOnly( ) 设置调用文件为只读
    并且,因为File 类现在支持Comparable 接口,compareTo( )方法也被支持。
    (转自):http://blog.csdn.net/shichexixi/article/details/5563605
  • 相关阅读:
    年轻人的第一个 Spring Boot 应用,太爽了!
    面试问我 Java 逃逸分析,瞬间被秒杀了。。
    Spring Boot 配置文件 bootstrap vs application 到底有什么区别?
    坑爹的 Java 可变参数,把我整得够惨。。
    6月来了,Java还是第一!
    Eclipse 最常用的 10 组快捷键,个个牛逼!
    Spring Cloud Eureka 自我保护机制实战分析
    今天是 Java 诞生日,Java 24 岁了!
    厉害了,Dubbo 正式毕业!
    Spring Boot 2.1.5 正式发布,1.5.x 即将结束使命!
  • 原文地址:https://www.cnblogs.com/022414ls/p/11829287.html
Copyright © 2011-2022 走看看