原创

Java的文件对象-File


什么是File

  • 文件和目录路径名的抽象表示形式,与平台无关。(File操作是一个路径)
  • File他能够对文件(目录)进行新建、删除、重命名等相关操作,但是File不能对文件的内容进行任何的访问操作。
  • 如果要对一个文件的具体内容进行操作需要使用input/output这两个操作(I/O)。
  • 构造方法: File(String pathname) 以pathname为路径名创建一个新的File对象,可以是绝对路径也可以是相对路径。 如果pathname是一个相对路径,则默认以项目为中心进行存储 如果pathname是一个绝对路径,则以计算机的具体盘符路径进行存储 File(File parent, String child): 根据一个file对象存在的目录,拼接一个新的字符串路径,构建另一个新的路径 File(String parent, String child): 根据 parent路径名字符串和child路径名字符串创建一个新File 实例。

关于路径的问题

  1. java当中的""是一个转义字符,会对后面的内容进行转义,如果说你""代表的是下级目录请使用"\"代替
  2. 路径分割和操作系统有严格的区分 windows或者dos系统默认使用""来进行表示下一级目录 Unix和mac使用"/"来进行表示下一级 Java的是一个跨平台的语言,所以一定要考虑你使用的下一级的符号是不是能够兼容所操作的平台 如何处理平台路径标识不一样的问题?

解决方法一:先判断操作系统,在决定使用什么样的分隔符 String s= System.getProperty("os.name"); System.out.println(s);

if(s.equals("Mac OS X")){
   File f = new File("/Users/TOOBUG/Desktop/");
}else if(s.equals("Windows 10 NT")){
   File f = new File("\\Users\\TOOBUG\\Desktop\\");
}

解决方法二:File.separator;根据系统环境自动动态的匹对对应的分割符 String s = File.separator; File file = new File("Users"+s+"TOOBUG"+s+"Desktop"+s); System.out.println(file);

  • 创建功能: boolean createNewFile():创建一个新的文件,如果文件不存在自动创建,已经存在不在创建 boolean mkdir():创建一个目录,如果已经存在则不再创建 boolean mkdirs():创建多层文件夹,如果上一级文件夹不存在则自动创建。

  • 删除功能: boolean delete():可以删除某一个目录或者文件

  • 注意事项: 1.删除目录只能删除为空的目录 2.所有的删除是物理删除,不走回收站

  • 重命名功能: boolean renameTo(File dest):

  • 注意事项: 1.如果两个路径都相同,则是重命名 2.如果两个路径不相同,则重命名并且剪切到新路径

    目录名:demo(file对象) - > 资源(只能是一个新的路径的File对象)

  • 判断功能: boolean isDirectory():判断是否为目录 boolean isFile:判断是否为文件 boolean exists:判断是否存在

    boolean canRead():判断文件是否可读 boolean canWrite():判断文件是否可写 boolean isHidden():判断文件是否隐藏

  • 获取功能: String getAbsolutePath():获取文件的绝对路径 String getPath():获取相对路径 String getName():获取文件(目录)的名字 String length():获取文件字节大小 long lastModified():获取文件的最后一次的修改时间(毫秒值) String[] list:获取指定目录下面的所有文件和文件夹名字,返回一个String数组 File[] listFiles:获取指定目录下面的所有文件和文件的File对象,返回一个File数组

判断任意盘目录下面是否存在后缀名为.java的文件,如果有就进行输出并且显示相关文件的最后一次修改日期、大小。(思路:用递归就可以取出一个盘下所有的Java文件,代码如下)

public static void main(String args[]) throws IOException {
    String a="E:";//盘符
    File file=new File(a);
    file01(file);
}
public static void file01(File file){
    if(file.isDirectory()){
        File[] files=file.listFiles();
        for (File f:files) {
            if(f.isDirectory()){
                file01(f);
            }else if(f.isFile()){
                if(f.getName().endsWith(".java")){
                    System.out.println(f.getName());
                }
            }
        }
    }
}
java
Spring