File类
File类的说明
File类是指java.io.File
,一个File类对象是指一个文件或文件目录的抽象的路径的表示,可以理解为一个File对象就是指一个文件或一个文件目录。
File
的作用:
File
能新建、删除、重命名文件和目录,但File
不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。- 想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个
File
对象,但是Java程序中的一个File
对象,可能没有一个真实存在的文件或目录。 File
对象可以作为参数传递给流的构造器。
File对象的创建
File
类有四个构造器,这里先学习前三个:
public File(String pathname)
: 以指定的pathname
为路径创建File
对象,可以是绝对路径或相对路径。如果是相对路径,在IDEA中的Test中则是相当于当前的Module中,否则相当于当前的工程路径。public File(String parent, String child)
:parent
为上一层目录,child
为在指定上一层目录下的路径,以指定的parent
下的child
为路径创建File
对象。public File(File parent, String child)
: 指定File
对象为上一层目录,child
为在指定上一层目录下的路径,以指定的parent
下的child
为路径创建File
对象。
在以字符串形式指定文件路径时,注意路径中的每级目录之间用一个路径分隔符
隔开。路径分隔符
和系统有关:
- Windows和DOS系统默认使用
\
来表示; - UNIX和URL使用
/
来表示。
Java程序支持跨平台运行,因此路径分隔符要慎用。
为了解决这个隐患,File
类提供了一个常量:public static final String separator
,该常量根据操作系统,动态地提供分隔符。
创建File
对象的示例:
File类的常用方法
1 获取方法
public String getAbsolutePath()
:获取绝对路径;public String getPath()
:获取路径,注意该路径参考的是实例化时的路径,如果该File对象在创建时用的是相对路径,该路径就是相对路径,如果该File对象在创建时用的是绝对路径,该路径就是绝对路径;public String getName()
:获取名称;public String getParent()
:获取上层文件目录路径,如果没有,则返回null
;注意该上一层目录参考的是实例化时的路径,如果该File对象在创建时用的是相对路径,则该方法返回null
,如果该File对象在创建时用的是绝对路径,则该方法会按照绝对路径来返回上一层目录。public long length()
:获取文件长度,默认为0,即文件或目录还不存在时为0;public long lastModified()
:获取最后一次的修改时间,毫秒值,默认为0,即文件或目录还不存在时为0;public String[] list()
:获取指定目录或文件下的所有文件或目录名称数组,如果指定的是文件,则返回null
;public File[] listFiles()
:获取指定目录或文件下的所有文件或目录对应的File对象数组,如果指定的是文件,则返回null
。
2 重命名
public boolean renameTo(File dest)
: 把文件重命名为指定文件。要求指定为的重命名的File
即参数dest
指定的文件或目录不存在,并且要重命名的File
存在。
3 判断
public boolean isDirectory()
:判断是否为文件目录;public boolean isFile()
:判断是否为文件;public boolean isHidden()
:判断是否隐藏;public boolean exists()
:判断是否存在;public boolean canRead()
:判断是否可读,如果文件或目录不存在默认就是false;public boolean canWrite()
:判断是否可写,如果文件或目录不存在默认就是false。
4 创建
public boolean createNewFile() throws IOException
: 创建文件。如果文件存在,则创建失败,返回false;public boolean mkdir()
: 创建一个文件目录。如果文件目录存在或者要求创建多个文件目录,则创建失败,返回false;public boolean mkdirs()
:创建文件目录,如果上层文件目录也不存在,一并创建。
5 删除
public boolean delete()
: 删除文件或目录。注意Java中的删除不走回收站,并且只能删除单个文件或目录。