Java IO之File 类详解

作者:YSOcean 时间:2023-08-07 20:02:12 

File 类:文件和目录路径名的抽象表示。

注意:File 类只能操作文件的属性,文件的内容是不能操作的。

1、File 类的字段

Java IO之File 类详解

我们知道,各个平台之间的路径分隔符是不一样的。

①、对于UNIX平台,绝对路径名的前缀始终为"/" 。 相对路径名没有前缀。 表示根目录的抽象路径名具有前缀"/"和空名称序列。

②、对于Microsoft Windows平台,包含驱动器说明符的路径名的前缀由后面跟着":"的驱动器号组成,如果路径名是绝对的,则可能后跟"\\" 。 UNC路径名的前缀为"\\\\" ; 主机名和共享名称是名称序列中的前两个名称没有有指定驱动器的相对路径名没有前缀。

那么为了屏蔽各个平台之间的分隔符差异,我们在构造 File 类的时候(如何构造,请看下面第二点),就可以使用上述 Java 为我们提供的字段。

那么我们可以看出:

File.pathSeparator指的是分隔连续多个路径字符串的分隔符

File.separator是用来分隔同一个路径字符串中的目录的

2、File 类的构造方法

Java IO之File 类详解

如何使用上述构造方法,请看如下例子:

//不使用 Java 提供的分隔符字段,注意:这样写只能在 Windows 平台有效
       File f1 = new File("D:\\IO\\a.txt");
       //使用 Java 提供的分隔符
       File f2 = new File("D:"+File.separator+"IO"+File.separator+"a.txt");
       System.out.println(f1);//输出 D:\IO\a.txt  
       System.out.println(f2);//输出 D:\IO\a.txt

//File(File parent, String child)
       //从父抽象路径名和子路径名字符串创建新的 File实例。
       File f3 = new File("D:");
       File f4 = new File(f3,"IO");
       System.out.println(f4); //D:\IO

//File(String pathname)
       //通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
       File f5 = new File("D:"+File.separator+"IO"+File.separator+"a.txt");
       System.out.println(f5); //D:\IO\a.txt

//File(String parent, String child)
       //从父路径名字符串和子路径名字符串创建新的 File实例。
       File f6 = new File("D:","IO\\a.txt");
       System.out.println(f6); //D:\IO\a.txt

3、File 类的常用方法

①、创建方法

1.boolean createNewFile() 不存在返回true 存在返回false

2.boolean mkdir() 创建目录,如果上一级目录不存在,则会创建失败

3.boolean mkdirs() 创建多级目录,如果上一级目录不存在也会自动创建

②、删除方法

1.boolean delete() 删除文件或目录,如果表示目录,则目录下必须为空才能删除

2.boolean deleteOnExit() 文件使用完成后删除

③、判断方法

1.boolean canExecute()判断文件是否可执行

2.boolean canRead()判断文件是否可读

3.boolean canWrite() 判断文件是否可写

4.boolean exists() 判断文件或目录是否存在

5.boolean isDirectory() 判断此路径是否为一个目录

6.boolean isFile()判断是否为一个文件

7.boolean isHidden()判断是否为隐藏文件

8.boolean isAbsolute()判断是否是绝对路径 文件不存在也能判断

④、获取方法

1.String getName() 获取此路径表示的文件或目录名称

2.String getPath() 将此路径名转换为路径名字符串

3.String getAbsolutePath()返回此抽象路径名的绝对形式

4.String getParent()//如果没有父目录返回null

5.long lastModified()//获取最后一次修改的时间

6.long length()返回由此抽象路径名表示的文件的长度。

7.boolean renameTo(File f)重命名由此抽象路径名表示的文件。

8.File[] liseRoots()//获取机器盘符

9.String[] list() 返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。

10.String[] list(FilenameFilter filter)返回一个字符串数组,命名由此抽象路径名表示的目录中满足指定过滤器的文件和目录。

//File(File parent, String child)
       //从父抽象路径名和子路径名字符串创建新的 File实例。
       File dir = new File("D:"+File.separator+"IO");
       File file = new File(dir,"a.txt");

//判断dir 是否存在且表示一个目录
       if(!(dir.exists()||dir.isDirectory())){
           //如果 dir 不存在,则创建这个目录
           dir.mkdirs();
           //根据目录和文件名,创建 a.txt文件
           file.createNewFile();

}
       //返回由此抽象路径名表示的文件或目录的名称。 这只是路径名称序列中的最后一个名字。 如果路径名的名称序列为空,则返回空字符串。
       System.out.println(file.getName()); //a.txt
       //返回此抽象路径名的父null的路径名字符串,如果此路径名未命名为父目录,则返回null。
       System.out.println(file.getParent());//D:\IO
       //将此抽象路径名转换为路径名字符串。 结果字符串使用default name-separator character以名称顺序分隔名称。
       System.out.println(file.getPath()); //D:\IO\a.txt

4、File 的一些技巧

①、打印给定目录下的所有文件夹和文件夹里面的内容

public static void getFileList(File file){
       //第一级子目录
       File[] files = file.listFiles();
       for(File f:files){
           //打印目录和文件
           System.out.println(f);
           if(f.isDirectory()){
               getFileList(f);
           }
       }
   }

测试:

public static void main(String[] args) throws Exception {
       File f = new File("D:"+File.separator+"WebStormFile");
       getFileList(f);
   }

来源:https://www.cnblogs.com/ysocean/p/6851878.html

标签:Java,IO,File,类
0
投稿

猜你喜欢

  • Android运用BroadcastReceiver实现强制下线

    2021-07-20 19:49:29
  • Java lambda表达式与泛型整理总结

    2021-07-15 19:57:14
  • Maven+Tomcat8 实现自动化部署的方法

    2023-01-03 06:44:20
  • Spring cloud alibaba之Gateway网关功能特征详解

    2022-10-26 18:22:28
  • 详解如何在Flutter中获取设备标识符

    2022-12-18 12:41:26
  • 解决C# X64应用程序中读取WParam溢出的问题

    2022-01-22 17:41:03
  • C#算法之回文数

    2022-06-26 20:02:38
  • java HttpClient传输json格式的参数实例讲解

    2023-08-08 13:21:26
  • C#8 的模式匹配实现

    2023-02-11 16:22:16
  • Android WorkManager使用以及源码分析

    2022-02-04 01:10:26
  • java实现mp3合并的方法

    2023-11-09 03:47:08
  • Android7.0开发实现Launcher3去掉应用抽屉的方法详解

    2021-07-24 12:31:38
  • Java中synchronized锁升级的过程

    2022-09-27 16:52:10
  • Java位掩码控制权限与(&)或(|)非(~)、>的介绍

    2023-05-27 19:10:15
  • Unity shader实现高斯模糊效果

    2023-11-17 20:23:45
  • eclipse配置tomcat10的详细步骤总结

    2021-10-04 03:34:25
  • Java规则引擎Easy Rules的使用介绍

    2023-05-04 01:42:57
  • Springboot配置文件内容加密代码实例

    2022-09-13 05:56:09
  • Spring ComponentScan的扫描过程解析

    2023-01-04 08:49:58
  • Java冒泡排序及优化介绍

    2023-11-11 13:05:51
  • asp之家 软件编程 m.aspxhome.com