注释都在代码中写出:
@Test public void test1(){ File file1 = new File("hello.txt"); File file2 = new File("D:\\file\\hello.txt"); //1.getAbsolutePath():获取绝对路径 System.out.println(file1.getAbsolutePath()); //2.getPath():获取路径 System.out.println(file1.getPath()); //3.getName():获取名称 System.out.println(file1.getName()); //4.getParent():获取上层文件目录路径,若无,返回null System.out.println(file1.getParent()); //5.length():获取文件长度(即字节数),不能获取目录的长度 System.out.println(file1.length()); //6.lastModified:获取最后一次的修改时间,毫秒值 System.out.println(file1.lastModified()); //7.list():获取指定目录下的所有文件或者文件目录的名称数组 System.out.println(file1.list()); //8.listFiles():获取指定目录下的所有文件或者文件目录的File数组 System.out.println(file1.listFiles()); System.out.println("*************"); //1.getAbsolutePath():获取绝对路径 System.out.println(file2.getAbsolutePath()); //2.getPath():获取路径 System.out.println(file2.getPath()); //3.getName():获取名称 System.out.println(file2.getName()); //4.getParent():获取上层文件目录路径,若无,返回null System.out.println(file2.getParent()); //5.length():获取文件长度(即字节数),不能获取目录的长度 System.out.println(file2.length()); //6.lastModified:获取最后一次的修改时间,毫秒值 System.out.println(file2.lastModified()); //7.list():获取指定目录下的所有文件或者文件目录的名称数组 System.out.println(file2.list()); //8.listFiles():获取指定目录下的所有文件或者文件目录的File数组 System.out.println(file2.listFiles()); }
输出结果如下:
D:\Intell workspace\java_demo\day01\hello.txt hello.txt hello.txt null 6 1623847754068 null null ************* D:\file\hello.txt D:\file\hello.txt hello.txt D:\file 0 0 null null
下面再详细说一下list()和listFiles()方法:
@Test public void test2(){ File file1 = new File("D:\\Intell workspace\\java_demo"); //获取指定目录下的所有文件或者文件目录的名称数组 String[] list = file1.list(); for(String s:list){ System.out.println(s); } System.out.println("******************"); File file2 = new File("D:\\Intell workspace\\java_demo"); //获取指定目录下的所有文件或者文件目录的File数组 File[] files = file2.listFiles(); for (File file:files){ System.out.println(file); } }
输出结果:
.gradle .idea build build.gradle day01 gradle gradlew gradlew.bat jdbc.properties out settings.gradle src ****************** D:\Intell workspace\java_demo\.gradle D:\Intell workspace\java_demo\.idea D:\Intell workspace\java_demo\build D:\Intell workspace\java_demo\build.gradle D:\Intell workspace\java_demo\day01 D:\Intell workspace\java_demo\gradle D:\Intell workspace\java_demo\gradlew D:\Intell workspace\java_demo\gradlew.bat D:\Intell workspace\java_demo\jdbc.properties D:\Intell workspace\java_demo\out D:\Intell workspace\java_demo\settings.gradle D:\Intell workspace\java_demo\src
File类的重命名功能:
@Test public void test3(){ //renameTo(File dest):把文件重命名为指定的文件路径 //比如:file1.renameTo(file2)为例: //要想保证返回true,需要file1在硬盘中存在,file2不能在硬盘中存在 File file1 = new File("hello.txt"); File file2 = new File("D:\\file\\hi.txt"); boolean renameTo = file2.renameTo(file1); System.out.println(renameTo); }
File类的创建功能和删除功能:
@Test public void test5(){ /** * 创建硬盘中对应的文件或文件目录 * createNewFile():创建文件,若文件存在,则不创建,返回false * * mkdir():创建文件目录,若文件目录存在了,就不创建目录,返回false * 如果文件目录的上层不存在,就不创建了,返回false * 如果文件目录的上层目录存在,就创建目录,返回true * * mkdirs():创建文件目录,如果上层目录不存在,一并创建 * 如果目录不存在,就创建目录,返回true * 如果目录存在,就不创建目录,返回false * * 删除硬盘中的文件或文件目录 * delete():删除文件或者文件夹 * 删除注意事项: * Java中的删除不走回收站 * */ File file = new File("hi.txt"); if (!file.exists()){ try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } System.out.println("创建成功"); }else { file.delete(); System.out.println("删除成功"); } } @Test public void test6(){ File file = new File("D:\\file\\ss\\yu\\o"); boolean mkdir = file.mkdir(); if (mkdir){ System.out.println("创建成功1"); } File file1 = new File("D:\\file\\io\\yu"); boolean mkdirs = file.mkdirs(); if (mkdirs){ System.out.println("创建成功2"); } }
mkdir与mkdirs的区别看这个就可以了:
mkdirs()可以建立多级文件夹, mkdir()只会建立一级的文件夹, 如下: new File("D:\file\o").mkdirs(); 会直接创建成功 执行后, 会建立\file\o二级目录 new File("D:\file\o\cache").mkdir(); 执行后如果原本计算机D盘下,已经有file\o 目录,那么创建cache目录会成功,否则就不创建返回 false