1,关于File类
File类是IO包中唯一代表磁盘文件本身的对象, File类定义了一些与平台无关的方法来操作文件。 通过调用File类提供的各种方法,能够完成创建、删除文件、重命名文件、判断文件的读写权限权限是否存在、设置和查询文件的最近修改时间等操作。
2,File类主要操作
public static void main(String[] args) { //File类的静态变量,分别代表当前系统下的:; ; \ \ System.out.println(File.pathSeparator); System.out.println(File.pathSeparatorChar); System.out.println(File.separator); System.out.println(File.separatorChar); String pathName = "D:" + File.separator + "mytemp";//在win下等同于:D:/mytemp 或 D:\\mytemp /** * File共有4中构造方法,没有无参构造方法 * 1,传入路径(常用) * 2,传入URI * 3,传入父File,子路径 * 4,传入父路径,子路径 */ File file = new File(pathName);//获得D:/mytemp这个对象 if(file.exists() && file.isDirectory()) {//file是否存在并且是否是目录 System.out.println("file是目录\n"); File[] files = file.listFiles();//获取目录下的子目录和文件(仅当层目录下) System.out.println("目录下有:\n"); for(File f : files) { System.out.println(f); } System.out.println("#############################\n"); System.out.println(files[0].isFile() ? "files[0]是文件" : "files[0]是目录"); System.out.println("files[0]的名字:" + files[0].getName()); System.out.println("files[0]的路径:" + files[0].getPath()); System.out.println("files[0]的绝对路径:" + files[0].getAbsolutePath()); System.out.println("files[0]的父目录路径" + files[0].getParent()); System.out.println(files[0].canRead() ? "files[0]可读" : "files[0]可读"); System.out.println(files[0].canWrite() ? "files[0]可写" : "files[0]可写"); System.out.println(files[0].canExecute() ? "files[0]可执行" : "files[0]可执行"); System.out.println(files[0].isAbsolute() ? "files[0]的路径是绝对路径" : "files[0]的路径不是绝对路径"); System.out.println("files[0]的路径转换为URI:" + files[0].toURI()); long lastModifiedTime = files[0].lastModified();//获得文件上次修改时间,单位s Date date = new Date(lastModifiedTime); SimpleDateFormat dateFormate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String format = dateFormate.format(date); System.out.println("files[0]的上次修改时间:" + format); //删除文件的时候,不会进入回收站 //删除目录的时候,如果有子文件或子目录,不会删除成功 if(files[2].exists()) { files[2].delete();//删除files[2],这是一个目录 } if(files[6].exists()) { files[6].deleteOnExit();//当虚拟机终止时删除files[6],这是一个文件 } } }
3,创建File
@Test public void test() throws IOException { File parent = new File("D:" + File.separator + "mytemp"); if(parent.exists()) { System.out.println("父目录存在"); File childFile = new File(parent,"a.txt"); if(childFile.createNewFile()) {//创建文件,如果创建成功 System.out.println("文件创建成功!");//如果存在同名文件,不会创建 }; File childDirectory = new File(parent,"a"); if(childDirectory.mkdir()) {//创建目录,如果创建成功 System.out.println("目录创建成功!");//如果存在同名目录,不会创建 }; } }
4,删除File
public static void deleteFile(File file) { File[] files = file.listFiles(); if(files != null) { for(File f : files) { if(f.isDirectory()) { deleteFile(f); } f.delete(); } } file.delete(); }