首先要明确一个问题,File是以个对象,他并不是硬盘上的一个是在的文件,他是堆内存中的一块区域,他是用来包装文件或文件夹(以下所说的文件均指的是文件和文件夹),以便用来操作文件的一个类,再说直白点它就是一个用来早做文件的工具,因为流对文件的操作很有限。有了File类我们可以很容易操作各种文件。
File中的常用方法:
构造方法
File(Fileparent, String child)
根据 parent抽象路径名和 child路径名字符串创建一个新 File实例。
File(Stringpathname)
通过将给定路径名字符串转换为抽象路径名来创建一个新 File实例。
File(Stringparent, String child)
根据 parent路径名字符串和 child路径名字符串创建一个新 File实例。
File(URI uri)
通过将给定的 file: URI转换为一个抽象路径名来创建一个新的 File实例。
在硬盘上创建文件:
boolean createNewFile()
当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
static File createTempFile(String prefix, Stringsuffix)
在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。
static File createTempFile(String prefix, Stringsuffix, File directory)
在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。
创建目录:
boolean mkdir()
创建此抽象路径名指定的目录。
boolean mkdirs()
创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
删除文件:
boolean delete()
删除此抽象路径名表示的文件或目录。
void deleteOnExit()
在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。
判断:
boolean canExecute()
测试应用程序是否可以执行此抽象路径名表示的文件。
boolean canRead()
测试应用程序是否可以读取此抽象路径名表示的文件。
Boolean canWrite()
测试应用程序是否可以修改此抽象路径名表示的文件。
Boolean isAbsolute()
测试此抽象路径名是否为绝对路径名。
Boolean isDirectory()
测试此抽象路径名表示的文件是否是一个目录。
Boolean isFile()
测试此抽象路径名表示的文件是否是一个标准文件。
Boolean isHidden()
测试此抽象路径名指定的文件是否是一个隐藏文件。
boolean exists()
测试此抽象路径名表示的文件或目录是否存在。
获取文件信息:
File getAbsoluteFile()
返回此抽象路径名的绝对路径名形式。
String getAbsolutePath()
返回此抽象路径名的绝对路径名字符串。
String getName()
返回由此抽象路径名表示的文件或目录的名称。
String getParent()
返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。
File getParentFile()
返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null。
String getPath()
将此抽象路径名转换为一个路径名字符串。
publicboolean renameTo(File dest)
重新命名此抽象路径名表示的文件。
LonglastModified(); 获取最后更改的时间(从1970年1月1日开始的毫秒数)
Longlength();获取文件的字节数;(与字节流中的available()方法相似)
获取文件子目录:
String[] list()
返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
String[] list(FilenameFilterfilter)
返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。
File[] listFiles()
返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
File[] listFiles(FileFilterfilter)
返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
File[] listFiles(FilenameFilterfilter)
返回抽象路径名数组,这些路径名表示此抽象表示的目录中满足指定过滤器的文件和目录。
static File[] listRoots()
列出可用的文件系统根。
文件类中的常见问题:
在System.out.println(file)时,你在创建时传入的是什么就打印什么?
目录分隔符:File.Separator是文件类的一个成员表示文件目录分隔符
boolean createNewFile() 方法的特点:在指定位置创建文件,如果传入的路径文件已经存在,则不创建,返回false,和输出流不一样,输出流一旦产生就创建文件。不管你存不存在,存在的话直接覆盖。
创建目录:mkdir只能创建一级目录,mkdirs能创建多级目录。
Boolean isDirectory() Boolean isFile()在判断文件是目录还是文件之前,必须要用boolean exists()判断文件是否在硬盘上存在。
String getParent()返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。