File类的定义结构:publicclassFile implements Serializable, Comparable<File>
可以看出:File类是Comparable接口的子类,所以File类是可以进行排序的。在使用File类时需要为其设置路径,对于路径的设置主要通过File类的构造方法进行设置。
public File(String pathname) ; //设置File类的完整路径
public File(String parent , String child) ; //设置File类的父路径以及子目录。
如果想对文件进行操作,可以使用三个常用方法:
public boolean createNewFile() throws IOException //创建新文件
public boolean isExists() ; //判断文件是否存在
public boolean delete() ; //删除文件
package cn.tenon.filedemo; import java.io.File; public class FileDemo01 { public static void main(String[] args) throws Exception{ File file = new File("F:" + File.separator + "e.txt") ; if(file.exists()) { file.delete() ; }else { System.out.println(file.createNewFile()) ; } } }
在File类中提供了一个常量 : File.separator
publicstaticfinal String pathSeparator = "" + pathSeparatorChar ;
是为解决系统分隔符路径的问题。在Windows中用“ \ ” 作为路径目录的分隔符,而在Linux中用“ / ” 作为路径目录的分隔符。
对文件操作的常用方法:
public File getParentFile() 获取父路径
public boolean mkdirs() 创建路径
package cn.tenon.filedemo; import java.io.File; public class FileDemo01 { public static void main(String[] args) throws Exception{ File file = new File("F:" + File.separator + "a" + File.separator + "b" + File.separator + "c" + File.separator + "result.txt") ; if(!file.getParentFile().exists()) { file.mkdirs() ; } if(file.exists()) { file.delete() ; }else { System.out.println(file.createNewFile()); } } }
File类的其他常用方法:
public boolean canRead() ; 判断文件是否可读
public boolean canWrite() ; 判断文件是否可写
public boolean isFile() ; 判断是否是文件
public boolean isDirectory() ; 判断是否是目录
public long length() ; 取得文件长度
public long lastModified() ; 取得文件的最后修改日期
public String getName() ; 取得文件名称
package cn.tenon.filedemo; import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; public class FileDemo01 { public static void main(String[] args) throws Exception{ File file = new File("F:" + File.separator + "a" + File.separator + "b" + File.separator + "c" + File.separator + "result.txt") ; Date date = new Date() ; System.out.println(file.canWrite()) ; System.out.println(file.canRead()) ; System.out.println(file.isFile()) ; System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(new Date(file.lastModified()))) ; System.out.println(file.length()) ; } }
运行结果:true 、 true 、 true 、2019-02-22 、8
其他方法:
public File[] listFiles() ; 列出目录中的全部内容
package cn.tenon.filedemo; import java.io.File; public class FileDemo01 { public static void main(String[] args) throws Exception{ File file = new File("F:" + File.separator) ; File files[] = file.listFiles() ; for(int x = 0 ; x < files.length ; x ++) { System.out.println(files[x]) ; } } }
列出一个文件下的所有内容以及子目录:
package cn.tenon.filedemo; import java.io.File; public class FileDemo01 { public static void main(String[] args) throws Exception{ File file = new File("F:" + File.separator + "开发Jar包") ; listDir(file) ; } public static void listDir(File file) { if(file.isDirectory()) { File files[] = file.listFiles() ; for(int x = 0 ; x < files.length ; x ++) { if(files[x].isDirectory()) { listDir(files[x]) ; } } } System.out.println("完整路径" + file) ; } }