JavaIO —— java.io.File类


    常用常量
      创建一个新的 File 对象
        File类的缺点

           

          常用常量

          File.separator(分隔同一个路径字符串中的目录,例如C:\Program Files\Common Files)

                  与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。此字符串只包含一个字符,即 separatorChar。

          File.separatorChar

                  与系统有关的默认名称分隔符。此字段被初始化为包含系统属性 file.separator 值的第一个字符。在 UNIX 系统上,此字段的值为 '/';在 Microsoft Windows 系统上,它为 '\\'。

          File.pathSeparator(分隔连续多个路径字符串的分隔符,例如java-cptest.jar;abc.jar HelloWorld)

                  与系统有关的路径分隔符,为了方便,它被表示为一个字符串。此字符串只包含一个字符,即pathSeparatorChar

          File.pathSeparatorChar

                  与系统有关的路径分隔符。此字段被初始为包含系统属性 path.separator 值的第一个字符。此字符用于分隔以路径列表 形式给定的文件序列中的文件名。在 UNIX 系统上,此字段为 ':';在 Microsoft Windows 系统上,它为 ';'。

          示例:

          //获取当前class所在的盘符文件目录,假设为:D

          File root =new File("/");

          //绝对路径为: D:/test.txt

          File txtFile =new File(root,"test.txt");

           

          创建一个新的File对象

          File(File parent, String child)

                  根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。

          File(String parent, String child)

                  根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。

          File(String pathname)

                  通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。

          File(URI uri)

                  通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例。

          相对目录问题

                  java.io 包中的类总是根据当前用户目录来解析相对路径名。此目录由系统属性 user.dir 指定,通常是 Java 虚拟机的调用目录。

           

          File类的缺点

          在Java SE 7的发布之前,java.io.File类是用于文件I / O机制,但它有几个缺点:

          - 很多方法失败了,但没有抛出异常,所以不可能获得有用的错误消息。例如,一个文件删除失败,程序会收到一个“删除失败”,但不知-道是不是因为该文件不存在、用户没有权限,或者有一些其他的问题。
          -rename方法始终无法跨平台运行。
          -没有真正支持 symbolic links。
          -无法获取更多需要的元数据,比如文件权限,文件所有者,以及其他安全属性。
          -访问文件的元数据是低效的。
          -许多方法并没有形成规模。如果需要列出大目录,可能会导致系统挂起。大目录也可能造成内存资源的问题,导致拒绝服务。
          -在遍历文件树的时候,如果有循环性的符号链接,并不能编写可靠的代码作出适当的反应。

          例如删除一个文件:

          File file =new File("J:/test");

           

          //当删除失败后不知原因

          boolean b = file.delete();

          System.out.println(b);

           

          //删除失败会给出详细的异常信息

          Path path = file.toPath();

          try {

          Files.delete(path);

          }catch (IOException e) {

          e.printStackTrace();

          }

           

          已使用 传智播客 创建。

          评论 1
          添加红包

          请填写红包祝福语或标题

          红包个数最小为10个

          红包金额最低5元

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

          抵扣说明:

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

          余额充值