File-一个IO流中至关重要的类
2024-01-07 21:42:48
File类
- 概述:文件和目录路径名的抽象表示,File 对象就代表一个路径
- 对与File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的。将来要通过具体的操作把这个路径的内容转换为具体存在的。
常用方法
-
构造方法
方法 作用 File(String pathname) 通过给定路径名-字符串转换为抽象路径名来创建新的File实例 File(String parent , String child) 从父路径名字符串和子路径名字符串创建新的File实例 File(File parent , String child) 从父抽象路径名和子路径名字符串创建新的File实例 public class Test{ public static void main(String[] args){ // 1、通过给定路径名-字符串转换为抽象路径名来创建新的File实例 File f1 = new File("D:\\a.txt"); File f2 = new File("D:\\music"); // 2、从父路径名字符串和子路径名字符串创建新的File实例 File f3 = new File("D:\\a","b.txt"); // 3、从父抽象路径名和子路径名字符串创建新的File实例 File f4 = new File(f2 , "c.mp4"); } }
-
创建方法
方法 作用 public boolean createNewFile() 当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空文件(文件存在,返回true。不存在返回 false) public boolean mkdir() 创建由此抽象路径名命名的目录(文件夹) public boolean mkdirs() 创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录(创建多级目录) 注意:
①:创建文件的时候,要确保上级目录存在,才可以创建成功
public class Test{ public static void main(String[] args) throws IOException { // 1、创建一个文件对象,其实就是创建 一个路径的 对象 File f1 = new File("D:\\a.txt"); // 文件对象 File f2 = new File("D:\\b"); // 单级文件夹对象 File f3 = new File("D:\\c\\d"); // 多级文件夹对象 // 2、创建文件(就是在磁盘中创建这个路径的文件或者文件夹) boolean a = f1.createNewFile(); boolean b = f2.mkdir(); boolean c = f3.mkdirs(); System.out.println(a +" " + b +" " + c); } }
-
删除方法
方法 作用 public boolean delete() 删除由此抽象路径名表示的文件或目录 注意:删除文件的时候,要确保文件夹里没有文件,才可以删除文件夹成功
public class Test2 { public static void main(String[] args) { // 1、创建文件对象 File f1 = new File("D:\\a.txt"); // 文件对象 File f2 = new File("D:\\c"); // 单级文件夹对象 // 2、删除文件(从磁盘中删除) boolean a = f1.delete(); boolean b = f2.delete(); System.out.println(a + " " + b); } }
运行结果:true false ,并且 D盘下 的 a.txt 已经删除(直接从电脑删除,不放入回收站),但是第二个是 false 是因为,我们代码上方的注意事项,c 文件夹下还有 d 文件夹,所以删除失败!
-
判断和获取方法
方法 作用 public boolean isDirectory() 判断此抽象路径名表示的File是否为目录 public boolean isFile() 判断此抽象路径名表示的File是否为文件 public boolean exists() 判断此抽象路径名表示的File是否存在 public String getAbsolutePath() 返回此抽象路径名的绝对路径名字符串 public String getPath() 将此抽象路径名转换为路径名字符串 public String getName() 返回此抽象路径名表示的文件或目录的名称 public String[] list() 返回此抽象路径名表示的目录中的文件和目录的名称字符串数组 public File[] listFiles() 返回此抽象路径名表示的目录中的文件和目录的File对象数组 public class Test { public static void main(String[] args) { // 1、创建一个文件对象,其实就是创建 一个路径的 对象 File f1 = new File("D:\\a.txt"); // 文件对象 File f2 = new File("D:\\b"); // 单级文件夹对象 File f3 = new File("D:\\c\\d"); // 多级文件夹对象 File f4 = new File("D:\\c"); // 2、判断此抽象路径名表示的File是否为文件和目录(文件夹) boolean a = f1.isFile(); boolean b = f2.isDirectory(); // 3、判断此抽象路径名表示的File是否存在 boolean c = f1.exists(); // 4、返回此抽象路径名的绝对路径名字符串 String f3Path = f3.getAbsolutePath(); // 5、将此抽象路径名转换为路径名字符串 String path = f3.getPath(); // 6、返回此抽象路径名表示的文件或目录的名称 String name = f1.getName(); System.out.println(a + " " + b + " " + c); System.out.println(f3Path); System.out.println(path); System.out.println(name); // 7、返回此抽象路径名表示的目录中的文件和目录的名称字符串数组 String[] list = f4.list(); for (String s : list) { System.out.println(s); } // 8、返回此抽象路径名表示的目录中的文件和目录的File对象数组 File[] files = f4.listFiles(); for (File file : files) { System.out.println(file); } } }
运行结果
false true false
D:\c\d
D:\c\d
a.txt
d
D:\c\d
绝对路径和相对路径
- 绝对路径:完整的路径名,不需要任何其他信息就可以定位它所表示的文件
- 相对路径:必须使用取自其他路径名的信息进行解释(必须要有个参考物)
案例
-
需求:在D盘下创建一个四级目录,以 a b c d 字母顺序创建,并且在 d 目录下 创建文件 e.mp4 和 f.txt(创建文件时,需要先去判断此文件是否存在)。最后遍历输出 a 文件夹下所有 文件的名字。并且遍历时,删除后缀为 .txt 的文件?
-
思路分析:
- 首先需要创建四个 文件对象
- 创建 两个文件
- 其次遍历 a 文件夹,并输出所有文件的名字
- 最后,在遍历的时候,判断后缀是否为 .txt ,是的话,执行删除
public class Test { // 创建文件对象方法 public static void createFile(File f){ // 首先判断文件是否存在 if(!f.exists()){ // 不存在,创建文件 try { f.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } } // 遍历文件,并删除后缀是 .txt 的文件 public static void showAndDel(File f){ // 判断是文件还是文件夹 if(f.isDirectory()){ File[] files = f.listFiles(); // 获取当前文件对象下的所有文件对象 for (File file : files) { // 遍历输出名字,并继续递归向下 System.out.println(file.getName()); showAndDel(file); } }else{ if(f.getName().endsWith(".txt")){ // 判断后缀是否是 .txt 是,执行删除 f.delete(); } } } public static void main(String[] args) { // 1、创建 4 个对象 File f1 = new File("D:\\a\\b\\c\\d"); File f2 = new File("D:\\a"); File f3 = new File(f1 , "e.mp4"); File f4 = new File(f1 , "f.txt"); // 2、磁盘创建 文件和文件夹 f1.mkdirs(); createFile(f3); createFile(f4); // 3、遍历删除 showAndDel(f2); } }
文章来源:https://blog.csdn.net/weixin_45754463/article/details/135444306
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!