1.File的类图
2.举个栗子
import java.io.*; import java.sql.SQLOutput; /** * File 是文件和目录路径名的抽象表示形式。 */ public class FileDemo { public static void main(String[] args) { File file = new File("d:/a.txt"); test1(file); File file1 = new File("d:/"); test2(file1); File file3 = new File("d:/");//过滤文件 test3(file3); } private static void test3(File file3) { String[] list = file3.list(filenameFilter()); for (String s : list) { System.out.println(s); //返回的是D盘下的所有文件和目录 但是不添加盘符 } File[] files1 = file3.listFiles(filenameFilter()); for (File file1 : files1) { System.out.println(file1); //返回的D盘下的绝对路径 } File[] files2 = file3.listFiles(fileFilter()); for (File file1 : files2) { System.out.println(file1); //返回的D盘下的绝对路径 } } public static FilenameFilter filenameFilter(){ return new FilenameFilter() { @Override public boolean accept(File dir, String name) { return name.endsWith(".java"); } }; } public static FileFilter fileFilter(){ return new FileFilter() { @Override public boolean accept(File pathname) { return pathname.getName().endsWith(".java"); } }; } private static void test2(File file) { File[] files = file.listRoots(); for (File file1 : files) { System.out.println(file1); //返回的是 C:\ D:\ E:\ } String[] list = file.list(); for (String s : list) { System.out.println(s); //返回的是D盘下的所有文件和目录 但是不添加盘符 } File[] files1 = file.listFiles(); for (File file1 : files1) { System.out.println(file1); //返回的D盘下的绝对路径 } } private static void test1(File file ) { try { boolean newFile = file.createNewFile(); //创建一个空文件 如果文件存在则返回false System.out.println(newFile); System.out.println(file.canExecute());//文件是否可执行 System.out.println(file.canRead());//文件是否可读取 System.out.println(file.canWrite());//文件是否可写 System.out.println(file.getCanonicalFile());//回去文件 的抽象路径 System.out.println(file.getCanonicalPath());//获取文件的抽象路径 System.out.println(file.compareTo(new File("d:/b.txt")));// 返回-1 如果该参数等于此抽象路径名,则返回零;如果此抽象路径名在字母顺序上小于该参数,则返回小于零的值;如果此抽象路径名在字母顺序上大于该参数,则返回大于零的值 File tempFile = File.createTempFile("aqqq1", "txt",new File("d:/"));//创建临时文件 System.out.println(tempFile); boolean delete = tempFile.delete();// 删除此抽象路径名表示的文件或目录。如果此路径名表示一个目录,则该目录必须为空才能删除。 System.out.println(delete); // deleteOnExit() 这个方法的栗子:如果正在传文件的时候jvm断开了 那么创建的文件就会删除掉 类似于数据库的事务原子的特性 System.out.println(file.equals(file));//判断给定的File的对象的抽象路径是否一样 使用的其实是CompareTo方法 System.out.println(file.exists());//存在返回true 不存在的时候返回false System.out.println(file.getAbsoluteFile());//返回绝对路径 System.out.println(file.getAbsolutePath());//返回绝对路径字符串 System.out.println(file.getFreeSpace());//返回磁盘的空余空间 System.out.println(file.getTotalSpace());//返回磁盘总空间 System.out.println(file.getUsableSpace());//返回磁盘可用空间 // System.out.println(file.isAbsolute()); //是否为绝对路径名 // System.out.println(file.isDirectory());//是否为目录 // System.out.println(file.isFile());//是否为文件 // System.out.println(file.isHidden());//文件是否隐藏 // System.out.println(file.lastModified());//文件的最近更新时间 // System.out.println(file.length());//文件的大小 // System.out.println(file.list().toString());//目录中的文件和目录 // System.out.println(file.listRoots());//可用的文件系统根 // file.mkdir(); //创建目录 只能有一级 比如 d:/aaa // file.mkdirs(); //创建多级目录 比如 d:/aaa/bbb } catch (IOException e) { e.printStackTrace(); } } }