构造方法
File(File parent, String child)

根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例
File(String pathname)

通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例
File(String parent, String child)

根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例
File(URI uri)

通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例


返回类型 方法描述
创建  
boolean createNewFile()

创建文件,同时不存在返回true 存在返回false
static File createTempFile(String suffix)

在默认临时文件目录中创建一个空文件,使用给定的前缀和后缀生成其名称。
static File createTempFile(File directory)

在指定的目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。
boolean mkdir()

创建目录,如果上一级目录不存在,则会创建失败
boolean mkdirs()

创建多级目录,如果上一级目录不存在也会自动创建
检查  
boolean exists()

测试文件或目录是否存在,存在true
boolean canExecute()

测试是否可执行文件。
boolean canRead()

测试是否可以读取文件。
boolean canWrite()

测试是否可以修改文件。
boolean equals(Object obj)

测试此抽象路径名与给定对象的相等性。
boolean isAbsolute()

测试是否是绝对路径(文件不存在也能判断)
boolean isDirectory()

测试文件是否为目录。
boolean isFile()

测试文件是否为普通文件。
boolean isHidden()

测试文件是否为隐藏文件。
比较  
int compareTo(File pathname)

比较两个抽象的路径名字典。
删除  
boolean delete()

删除文件或目录,如果表示目录,则目录下必须为空才能删除
void deleteOnExit()

文件使用完成后删除
转换  
String getPath()

将此抽象路径名转换为路径名字符串。
设置  
boolean renameTo(File dest)

重命名由此抽象路径名表示的文件。
boolean setExecutable(boolean executable)

为此抽象路径名设置所有者的执行权限的便利方法。
boolean setExecutable(boolean executable, boolean ownerOnly)

设置该抽象路径名的所有者或每个人的执行权限。
boolean setLastModified(long time)

设置由此抽象路径名命名的文件或目录的最后修改时间。
boolean setReadable(boolean readable)

一种方便的方法来设置所有者对此抽象路径名的读取权限。
boolean setReadable(boolean readable, boolean ownerOnly)

设置此抽象路径名的所有者或每个人的读取权限。
boolean setReadOnly()

标记由此抽象路径名命名的文件或目录,以便只允许读取操作。
boolean setWritable(boolean writable)

一种方便的方法来设置所有者对此抽象路径名的写入权限。
boolean setWritable(boolean writable, boolean ownerOnly)

设置此抽象路径名的所有者或每个人的写入权限。
返回  
File getAbsoluteFile()

返回此抽象路径名的绝对形式。
String getAbsolutePath()

返回绝对路径名字符串。
File getCanonicalFile()

返回此抽象路径名的规范形式。
String getCanonicalPath()

返回此抽象路径名的规范路径名字符串。
long getFreeSpace()

返回分区未分配的字节数 named此抽象路径名。
String getName()

返回文件或目录的名称。
String getParent()

返回上一级目录的名称
File getParentFile()

返回上一级目录的File对象
long getTotalSpace()

通过此抽象路径名返回分区 named的大小。
long getUsableSpace()

返回上的分区提供给该虚拟机的字节数 named此抽象路径名。
int hashCode()

计算此抽象路径名的哈希码。
long lastModified()

返回文件上次修改的时间(单位毫秒)
long length()

返回文件的长度(字单位节)
String[] list()

返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。
String[] list(FilenameFilter filter)

返回一个字符串数组,命名由此抽象路径名表示的目录中满足指定过滤器的文件和目录。
File[] listFiles()

返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件。
File[] listFiles(FileFilter filter)

返回一个抽象路径名数组,表示由此抽象路径名表示的满足指定过滤器的目录中的文件和目录。
File[] listFiles(FilenameFilter filter)

返回一个抽象路径名数组,表示由此抽象路径名表示的满足指定过滤器的目录中的文件和目录。
static File[] listRoots()

列出可用的文件系统根。
Path toPath()

返回从此抽象路径构造的java.nio.file.Path对象。
String toString()

返回此抽象路径名的路径名字符串。
其它  
URI toURI()

构造一个表示此抽象路径名的 file: URI。


示例:

构造方法1:File(String pathname)

File f1 = new File("D:\\IO\\a.txt"); //注意:不使用 Java 提供的分隔符字段,只能在 Windows 平台有效

File f2 = new File("D:"+File.separator+"IO"+File.separator+"a.txt"); //使用 Java 提供的分隔符

System.out.println(f1); //输出 D:\IO\a.txt 

System.out.println(f2); //输出 D:\IO\a.txt  


构造方法2:File(File parent, String child)

File f1 = new File("D:");

File f2 = new File(f1,"IO");

System.out.println(f2); //D:\IO  


构造方法3:File(String parent, String child)

File f6 = new File("D:","IO\\a.txt");

System.out.println(f6); //D:\IO\a.txt



综合用法:

File dir = new File("D:"+File.separator+"IO");
File file = new File(dir,"a.txt");

//判断dir 是否存在且表示一个目录
if(!(dir.exists()||dir.isDirectory())){
 	dir.mkdirs();//如果 dir 不存在,则创建这个目录
  	file.createNewFile(); //根据目录和文件名,创建 a.txt文件
}

//返回文件或目录的名称。 这只是路径名称序列中的最后一个名字。 如果路径名的名称序列为空,则返回空字符串。
  
System.out.println(file.getName()); //a.txt
  
//返回父目录的路径名字符串,如果没有父目录返回null
  
System.out.println(file.getParent()); //D:\IO
  
//将路径转换为字符串
  
System.out.println(file.getPath()); //D:\IO\a.txt
  


递归遍历:

public static void foreachFile(File f){

	if(f != null){
	
		File[] files = f.listFiles(); //获取指定文件夹下所有文件夹名和文件名,返回File数组
		
		if(files != null){

			for(File file : files){

				if(file.isFile()){ //如果是文件
				
					//file.getAbsolutePath(); 获取文件绝对路径
		
					//file.getName(); 获取文件名

					//file.length(); 获取文件大小

				}else{
					//是文件夹,继续递归
					if(file != null)
						foreachFile(file);
					
				}

			}

		}
	
	}

}