JavaSE|File 水深无声 2022-04-11 11:45 162阅读 0赞 # File # 文件和目录路径名的抽象表示形式。 ## 构造方法 ## 1. public File(String pathname):根据一个路径得到File对象 2. public File(String parent,String child):根据一个目录和一个子文件/目录得到File对象 3. public File(File parent,String child):根据一个父File对象和一个子文件/目录得到File对象 // File(String pathname):根据一个路径得到File对象 // 把e:\\demo\\a.txt封装成一个File对象 File file = new File("E:\\demo\\a.txt"); // File(String parent, String child):根据一个目录和一个子文件/目录得到File对象 File file2 = new File("E:\\demo", "a.txt"); // File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象 File file3 = new File("e:\\demo"); File file4 = new File(file3, "a.txt"); // 以上三种方式其实效果一样 ## 成员方法 ## 1. 创建功能 public boolean createNewFile():创建文件。如果存在,就不创建了,并且返回false。 public boolean mkdir():创建文件夹。如果存在,就不创建了,并且返回false。 public boolean mkdirs():创建文件夹,包括所有必需但不存在的父文件夹。如果存在,就不创建了,并且返回false。 PS:如果创建文件或者文件夹忘写盘符路径,那么,默认在项目路径下。 // 需求:我要在e盘目录下创建一个文件夹demo File file = new File("e:\\demo"); System.out.println("mkdir:" + file.mkdir()); // 需求:我要在e盘目录demo下创建一个文件a.txt File file2 = new File("e:\\demo\\a.txt"); System.out.println("createNewFile:" + file2.createNewFile()); // 需求:我要在e盘目录test下创建一个文件b.txt // Exception in thread "main" java.io.IOException: 系统找不到指定的路径。 // 注意:要想在某个目录下创建内容,该目录首先必须存在。 // File file3 = new File("e:\\test\\b.txt"); // System.out.println("createNewFile:" + file3.createNewFile()); // 需求:我要在e盘目录test下创建aaa目录 // 不会报错,但也不会成功 // File file4 = new File("e:\\test\\aaa"); // System.out.println("mkdir:" + file4.mkdir()); // File file5 = new File("e:\\test"); // File file6 = new File("e:\\test\\aaa"); // System.out.println("mkdir:" + file5.mkdir()); // System.out.println("mkdir:" + file6.mkdir()); // 其实我们有更简单的方法 File file7 = new File("e:\\aaa\\bbb\\ccc\\ddd"); System.out.println("mkdirs:" + file7.mkdirs()); // 看下面的这个东西: // 创建出来了父目录下的a.txt目录,因为mkdirs()方法是创建目录的,要创建文件要使用createNewFile()方法 File file8 = new File("e:\\liuyi\\a.txt"); System.out.println("mkdirs:" + file8.mkdirs()); 1. 删除功能 public boolean delete() PS:1)Java中的删除不走回收站。2)要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹 File file = new File("a.txt"); System.out.println("createNewFile:" + file.createNewFile()); // 继续玩几个 File file2 = new File("aaa\\bbb\\ccc"); System.out.println("mkdirs:" + file2.mkdirs()); // 删除功能:我要删除a.txt这个文件 File file3 = new File("a.txt"); System.out.println("delete:" + file3.delete()); // 删除功能:我要删除ccc这个文件夹 File file4 = new File("aaa\\bbb\\ccc"); System.out.println("delete:" + file4.delete()); // 删除功能:我要删除aaa文件夹 // 不成功,因为aaa文件夹不空 // File file5 = new File("aaa"); // System.out.println("delete:" + file5.delete()); File file6 = new File("aaa\\bbb"); File file7 = new File("aaa"); System.out.println("delete:" + file6.delete()); System.out.println("delete:" + file7.delete()); 1. 重命名功能 public boolean renameTo(File dest) 如果路径名相同,就是改名;如果路径名不同,就是改名并剪切。 // 创建一个文件对象 // File file = new File("林青霞.jpg"); // // 需求:我要修改这个文件的名称为"东方不败.jpg" // File newFile = new File("东方不败.jpg"); // System.out.println("renameTo:" + file.renameTo(newFile)); File file2 = new File("东方不败.jpg"); File newFile2 = new File("e:\\林青霞.jpg"); System.out.println("renameTo:" + file2.renameTo(newFile2)); 1. 判断功能 public boolean isDirectory() public boolean isFile() public boolean exists() public boolean canRead() public boolean canWrite() public boolean isHidden() 2. 基本获取功能 public String getAbsolutePath():获取绝对路径 public String getPath():获取相对路径 public String getName():获取名称 public long length():获取长度(字节数) public long lastModified():获取最后一次的修改时间(毫秒值) 3. 高级获取功能 public String\[\] list():获取指定目录下所有文件或者文件夹的名称数组 public File\[\] listFiles():获取指定目录下的所有文件或者文件夹的File数组 4. 过滤器功能 public String\[\] list(FilenameFilter filter) public File\[\] listFiles(FilenameFilter filter) // 指定一个目录 File file = new File("e:\\"); // public String[] list():获取指定目录下的所有文件或者文件夹的名称数组 String[] strArray = file.list(); for (String s : strArray) { System.out.println(s); } System.out.println("------------"); // public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组 File[] fileArray = file.listFiles(); for (File f : fileArray) { System.out.println(f.getName()); } ## 练习 ## 判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出此文件名称 思路一: 1. 封装E盘目录 2. 获取E盘目录下所有文件夹和文件的File数组 3. 判断是否是文件 4. 判断文件名后缀是否是“.jpg” File file = new File("e:\\"); File[] fileArray = file.listFiles(); for(File f: fileArray){ if(f.isFile() && f.getName().endsWith(".jpg")){ System.out.println(f.getName()); } } 思路二: 1. 封装E盘目录 2. 运用文件名称过滤器过滤出需要的文件 public String\[\] list(FilenameFilter filter) public File\[\] listFiles(FilenameFilter filter) File file = new File("e:\\"); File[] fileArray = file.listFiles(new FilenameFilter(){ @Override public boolean accept(File dir, String name) { return new File(dir,name).isFile() && name.endsWith(".jpg"); } }); for(File f: fileArray){ System.out.println(f.getName()); }
还没有评论,来说两句吧...