File类的判断文件类型、获取文件信息功能
一些代码演示:
public class FileDemo2 { public static void main(String[] args) { //1.绝对路径创建一个文件对象 File f1 = new File("/Users/birdbird/Desktop/BeautifulGirl.webp"); //a.获取它的绝对路径 System.out.println(f1.getAbsolutePath()); //b.获取文件定义的时候使用的路径 System.out.println(f1.getPath()); //c.获取文件的名称:带后缀 System.out.println(f1.getName()); //d.获取文件的大小:字节个数 System.out.println(f1.length()); // 字节大小 //e.获取文件的最后修改的时间 long time = f1.lastModified(); System.out.println("最后修改时间:" + new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(time)); //f.判断文件是文件还是文件夹 System.out.println(f1.isFile()); // true System.out.println(f1.isDirectory()); // false File file = new File("/Users"); System.out.println(file.isFile()); // false System.out.println(file.isDirectory()); // true } }
File类创建文件的功能
File类删除文件的功能
- delete方法直接删除不走回收站;如果删除的是一个文件,且文件没有被占用则直接删除。
- delete方法默认只能删除空文件夹。
代码演示如下:
public class FileDemo3 { public static void main(String[] args) throws IOException { File f = new File("/Users/birdbird/Documents/Java code/Java ProMax/file-io-app/src/com/birdbird/d1_file/data.txt"); //a.创建新文件,创建成功返回true,反之。 System.out.println(f.createNewFile()); File f1 = new File("/Users/birdbird/Documents/Java code/Java ProMax/file-io-app/src/com/birdbird/d1_file/data02.txt"); System.out.println(f1.createNewFile()); // 几乎不用,因为以后文件几乎都是自动创建的! //b.mdfir创建一级目录 File f2 = new File("/Users/birdbird/Desktop/666"); System.out.println(f2.mkdir()); //c.mkdirs创建多级目录(重点) File f3 = new File("/Users/birdbird/Desktop/888/6677"); System.out.println(f3.mkdirs()); //d.删除文件或者空文件夹 System.out.println(f1.delete()); File f4 = new File("/Users/birdbird/Desktop/888/6677/BeautifulGirl.webp"); System.out.println(f4.delete());// 占用一样可以删除 // 只能删除空文件夹,不能删除非空文件夹 File f5 = new File("/Users/birdbird/Desktop/888/6677/BeautifulGirl.webp"); System.out.println(f5.delete()); } }
File类的遍历功能
listFiles方法注意事项:
- 当调用者不存在时,返回null
- 当调用者是一个文件时,返回null
- 当调用者是一个空文件夹时,返回一个长度为0的数组
- 当调用者是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回
- 当调用者是一个有隐藏文件的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏内容
- 当调用者是一个需要权限才能进入的文件夹时,返回null
代码演示如下:
public class FileDemo04 { public static void main(String[] args) { //1.定位一个目录 File f1 = new File("/Users/birdbird/Desktop/888"); String[] names = f1.list(); for (String name : names) { System.out.println(name); } //2.一级文件对象 //获取当前目录下所有的"一级文件对象"到一个文件对象数组中去返回(重点) File[] files = f1.listFiles(); for (File file : files) { System.out.println(file.getAbsolutePath()); } //注意事项 File dir = new File("/Users/birdbird/Desktop/888/ddd"); File[] files1 = dir.listFiles(); System.out.println(Arrays.toString(files1)); } }