Java中对文件的读写操作可以通过输入输出流来实现,但对于文件目录、属性以及管理等信息Java提供了一个专门的类来实现File。
1、File类的成员变量 FileStatic.java
static String pathSeparator 系统相关的路径分隔字符串,包含一个字符。
static char pathSeparatorChar 系统相关的路径分隔符,用于分隔多个路径。
static String separator 系统相关的文件分隔字符串。
static char separatorChar 系统相关的文件分隔符。
2、构造方法 FileConstructor.java
创建一个File对象,只是在内存中生成一个File类的实例,并不会在某个物理路径下创建一个文件或目录。
File (String pathname) 根据路径名创建一个File对象。
File (File parent, String child) 在给定File对象下创建一个File对象。
File (String parent, String child) 根据指定路径下创建一个File对象。
File (URL url) 根据一个URL对象创建一个File对象。
3、常用方法
boolean canRead() 判断File对象对应的路径是否可读。
boolean canWrite() 判断File对象对应的路径是否可写。
int compareTo(File pathname) 比较两个File对象,不是比较其对应的文件。
boolean equals(Object obj) 判断两个File对象是否相等。
boolean exists() 判断File对象对应的路径是否存在。
String getAbsolutePath() 获取File对象对应路径的绝对路径。
String getParent() 获取File对象对应路径的目录。
String getPath() 获取File对象对应的路径。
boolean isAbsolute() 判断File对象对应的路径是否为绝对路径。
boolean mkdir() 获得File对象对应的目录。
boolean mkdirs() 获得File对象对应路径下的所有目录。
String toString() 返回File对象对应路径的字符串。
4、查询/更改文件属性 FileProperty.java
String getName() 获取File对象对应路径的文件名。
boolean isDirectory() 判断File对象对应的路径是否为目录。
boolean isFile() 判断File对象对应的路径是否为文件。
boolean isHidden() 判断File对象对应的文件是否为隐藏属性。
long length() 获得File对象对应文件的长度。
long lastModified() 获得File对象对应文件的最近修改时间。
boolean renameTo(File dest) 更改File对象对应文件的文件名。
boolean setReadOnly() 设置File对象对应文件为只读。
5、创建文件 CreateFile.java
(1)通过创建一个文件输出流来创建一个新文件。这种方式不能创建目录,并且如果要创建的文件已存在会新建一个文件覆盖原文件。
FileOutrputStream file = new FileOutputStream(“filename”);
(2)通过File类提供的方法来创建文件,必须先创建一个File对象,然后调用其方法(createNewFile())来创建文件。
6、获得文件列表
通过File类的list()或listFiles()方法获得某个文件夹的文件列表。有以下几种形式:
String[] list(); 先判断File对象是否是一个目录
File[] listFiles(); FileList.java
File[] listFiles(FilenameFilter filter); FileList1.java
File[] listFiles(FileFilter filter); FileList2.java
其中FileFilter和FilenameFilter都是接口,filter为相应的过滤器。声明某个类,实现过滤器接口,便可以通过过滤条件来列出所有符合的文件。
FilenameFilter定义了一个方法:提供给list()使用,FilenameFilter使文件作为一个目录和一个文件名被过滤。
boolean accept(File directory, String filename);
FileFilter定义了一个方法:FileFilter使文件作为一个File对象被过滤。
boolean accept(File path)
一个简单的文件过滤是已知文件扩展名,你可以使用FilenameFilter 接口,但它却难以知道这个文件名到底是一个文件还是一个目录。为了去解决这个问题,你需要去做一个文件对象,与其自己去做,不如使用FileFilter接口。
7、删除文件
通过File类的delete()方法即可。如果File对象所对应的路径名是一个目录,只有当目录是一个空目录时才能被删除。
boolean delete() DeleteFile.java
8、临时文件
Java2在File类中提供了对临时文件的支持,程序可以根据需要在操作系统提供的临时文件创建自己的临时文件,也可以在特定的目录下创建,如果需要,还能在Java虚拟机退出时自动删除这个文件(调用File类的deleteOnExit()方法)。
创建一个临时文件,可以用File类的createTempFile()方法来创建,该方法是一个静态方法,有两种参数形式: CreateTempFile.java
File createTempFile(String prefix, String suffix);
File createTempFile(String prefix, String suffix, File directory);
其中prefix为文件名的前缀,suffix为文件名的后缀,directory为创建的临时文件所在的目录,如果未指明,则为系统默认的临时文件目录(如:c:\winnt\temp)。为了避免文件命名重复,Java为临时文件自动命名,在前缀与后缀之间加上一个数字。