java.io.File类,是java获取文件/文件夹的所有属性,和完成所有相关操作的类
例子:
1 package test.file.IO; 2 3 import java.io.*; 4 public class TestFile{ 5 public static void main(String[] args){ 6 //1.File类是java用来处理文件的类,它可以获取文件的所有属性 和 完成文件所需要的所有操作 7 // 所以使用的第一步就是new一个File对象 8 // File f = new File("test.txt");//构造方法也有多次重载 9 //2.判断文件是否存在,exists()方法,这是针对单个文件的,所以要用第三人称单数 10 //3.如果不存在那么就新建这个文件,createNewFile() 11 // 如果是要创建文件夹,则使用 mkdir();只能创建一层的文件夹和 12 // mkdirs()无论多少层都能够创建,所以推荐使用这个方法; 13 //4.判断文件是文件还是文件夹,isFile();isDirectory() 14 //5.如果是文件,获取文件的基本属性,getName()获取文件名; 15 // getPath()获取路径; 16 // getAbsolutePath()获取绝对路径; 17 // length()获取文件大小等等 18 //6.获取文件的父目录 getParent() 19 // getParentFile()可以获取父路径 20 //7.如果是文件夹,主要就是获取目录下的文件了 21 // list()返回所有子目录的文件名,返回值是String类型(隐藏文件也会返回) 22 // listFile()很明显,返回所有子目录下的所有文件,类型是File类型 23 // 24 25 26 File f = new File("D:\\123\\789\\abc.txt"); 27 if(f.exists()){//先判断文件是否存在 28 System.out.println("已存在"); 29 }else{ 30 if(f.isDirectory()){//判断要生成的是文件还是文件夹 31 f.mkdirs();//循环生成文件夹及其子文件夹 32 } else { 33 try { 34 if (!f.getParentFile().exists()) {//如果是创建包含文件夹的文件,必须先手动创建文件夹 35 f.getParentFile().mkdirs(); 36 } 37 f.createNewFile(); 38 } catch (Exception e) { 39 e.printStackTrace(); 40 } 41 } 42 } 43 44 //当为文件夹时,可以显示其子目录和文件 45 File f2 = new File("E:\\tommy_130923"); 46 String[] fileNames = f2.list();//list会把文件和子目录都罗列出来 47 for(int i=0;i<fileNames.length;i++) 48 System.out.println(i+" "+fileNames[i]); 49 50 System.out.println("***********************************"); 51 File[] files = f2.listFiles();//以文件的格式返回所有的文件和子目录 52 for(int j=0;j<files.length;j++) 53 System.out.println(j+" "+files[j].getName()); 54 55 //循环遍历文件 56 System.out.println("**************循环遍历文件*********************"); 57 showFiles(f2); 58 } 59 60 public static void showFiles(File f){ 61 if(f.exists()&&f.isDirectory()){ 62 File[] files = f.listFiles(); 63 for(File file:files){ 64 if(file.isDirectory()) 65 showFiles(file); 66 else 67 System.out.println(file.getAbsolutePath()); 68 } 69 70 }else if(f.exists()&&f.isFile()) 71 System.out.println(f.getAbsolutePath()); 72 } 73 }
时间: 2024-10-09 23:52:07