Java中的File类能做什么_File文件操作能力解析

File类仅管理文件元信息与路径操作,不读写内容;可创建删除目录、重命名、判断属性、遍历子项,但不可读写、复制文件或获取编码等高级属性。

File类本身不读写文件内容,只管理文件和目录的元信息与路径操作。它像一个“文件系统的导航员”,负责创建、删除、重命名、判断存在性、获取路径、列出子项等,但真正读写数据得靠InputStream/OutputStream或Scanner/FileWriter等配套类。

能直接操作文件系统结构

File对象可以执行与磁盘上实际文件或目录相关的动作:

  • mkdir()mkdirs()创建目录(后者支持多级)
  • delete()删除文件或空目录;deleteOnExit()注册退出时删除
  • renameTo(File dest)重命名或移动(仅限同磁盘,且目标不能存在)
  • createNewFile()原子性创建新文件(返回false说明已存在)

能获取和判断文件基础属性

所有判断和获取都不触发IO读取内容,速度快:

  • exists()isFile()isDirectory()canRead()canWrite()等返回布尔值
  • length()返回字节数(对目录返回0)
  • lastModified()返回毫秒时间戳,可转为Date查看
  • getAbsolutePath()getCanonicalPath()getName()getParent()用于路径解析

能遍历目录内容但不递归

list()返回String[]文件名数组;listFiles()返回File[]对象数组,更实用:

  • 两者都只查当前层,不深入子目录
  • 可传FilenameFilter或FileFilter实现简单筛选(比如只取.java文件)
  • 注意返回null表示路径不存在、非目录或无访问权限——必须判空,否则NPE

不能做的事要特别注意

避免常见误解:

  • 不能读取或写入文件内容(没read()、write()方法)
  • 不能复制文件(需配合流手动实现)
  • 不能获取文件编码、MIME类型、图片尺寸等高级属性
  • 路径字符串不校验合法性,new File("a/b/c")不会报错,哪怕路径根本不存在