File类 灰太狼 2022-12-31 13:19 170阅读 0赞 # 概述: # java中对文本文件这种事物的一种描述的类,定义一些可以操作文本文件的功能和属性 一个文件文件的路径对应就有一个File对象,这个File文件对象就 可以操作对应路径的文件本身 ## 文本文件和File文件对象有关系的: ## > File对象是对文本文件的一种**虚拟化**【File对象存在对应的文本文件不一定存在】 > **File对象是通过文件的路径创建出来的** ## 路径: ## #### 绝对路径: #### 包含磁盘根目录的全路径 比如: C:\\a\\b.txt #### 相对路径: #### 以一个固定的路径为参考得到的部分路径 比如:以c:\\a 路径为参考 b.txt就是相对路径 **工程项目相对于工程路径 可以使用相对路径** # File的构造方法 # ### 1、File(String path): ### > 创建一个以path路径为目标文件的文件对象 ### 2、File(String parent, String child): ### > 创建一个以parent+child拼接后的路径为目标文件的文件对象 ### 3、File(File file, String child): ### > 创建一个以file文件对象的路径+child拼接后的路径为目标文件的 文件对象 # File的创建方法 # ## 概述: ## 得到File的对象对应有一个文本文件,使用对象调用创建文本文件的功能,在对应的路径下创建出来对应的文本文件 给定的路径是要计划操作的文本文件【有可能不存在】的路径。 只要给我一个路径就可以先得到一个File对象,对象就可以调用相关功能在磁盘当中创建对应的文本文件。 ## 注意: ## > **File对象存在和文本文件是否存在没有关系。** ## 功能: ## ### 1、boolean createNewFile(): ### > 创建调用对象对应路径的文本文件。 注意事项: 被调用的时候确保文件所在的目录**必须在磁盘中存在** ### 2、boolean mkdir(): ### > 创建单级文件夹【就是一个文件夹】 注意事项: 被调用的时候确保文件所在的目录**必须在磁盘中存在** ### 3、boolean mkdirs(): ### 创建多级文件夹【多个文件夹】 **代码示例:** import java.io.File; import java.io.IOException; public class FileDemo { public static void main(String[] args) throws IOException { //获取文件对象,方式一: File file = new File("a"); //相对路径 System.out.println(file); //获取文件对象,方式二 File file3 = new File(file, "b/c"); System.out.println(file3); //获取文件对象,方式三 File file4 = new File("b","c/d"); System.out.println(file4); // 想要操作那个文件 先得到该文件的File对象,得到HelloWord.txt文件对象 File file2 = new File(file, "HelloWorld.txt"); //调用createNewFile,创建调用对象对应路径的文本文件 boolean cnf = file2.createNewFile(); System.out.println("创建文件" + cnf); //创建单级文件夹 boolean m = file.mkdir(); //成功 true 反之 false System.out.println("创建单级文件夹" + m); //创建多级文件夹 boolean m2 = file3.mkdirs(); System.out.println("创建多级文件夹" + m2); boolean m3 = file4.mkdirs(); System.out.println("创建多级文件夹" + m3); } } # File功能 # ## File 的删除功能 ## ### delete(): ### > 删除磁盘中对应的文本文件 > > **注意:** > 1、**只能删除空的文件夹** > 2、**删除不走回收站** **代码示例:** import java.io.File; public class FileDemo02 { public static void main(String[] args) { //创建要操作的文件的File对象 File file = new File("b/c"); //创建文件夹 file.mkdirs(); //删除 boolean del = file.delete(); //删除不走回收站 System.out.println(del); File file2 = new File("b/c/d"); //创建文件夹 file.mkdirs(); File file3 = new File("b"); //删除 boolean del2 = file3.delete(); //删除的文件夹必须为空 System.out.println(del2); } } ## File的重命名(或剪切)方法 ## ### renameTo(File dest): ### > 使用场景: > > 同一个文件夹下:**重命名的功能** > > 不在同一个文件夹下:**剪切功能**, 可以剪切并重命名 **代码示例:** import java.io.File; public class FileRenameToDemo { public static void main(String[] args) { //创建要操作的文件夹的File对象 File file = new File("a/a.txt"); File file2 = new File("a/b.txt"); //同文件夹下重命名 boolean rt = file.renameTo(file2); System.out.println(rt); //创建不同文件夹的File对象 File file3 = new File("a/c.txt"); File file4 = new File("b/c.txt"); //不同文件夹下是剪切功能 boolean rt2 = file3.renameTo(file4); System.out.println(rt2); } } ## File的判断功能 ## ### 1、exists(): ### > 判断调用对象对应的文本文件是否在磁盘中存在 ### 2、isFile(): ### > 判断调用对象对应的文本文件是不是文件 ### 3、isDirectory(): ### > 判断调用对象对应的文本文件是不是文件夹 注意: isFile和isDirectory方法调用的时候要确保file对象对应的**文件在磁盘中存**在才有意义 **代码示例:** import java.io.File; public class FileEqualsDemo { public static void main(String[] args) { //创建要操作的文件的File对象 File file = new File("a"); //文件夹存在 File file1 = new File("a/b/c/d"); //不存在 File file2 = new File("a/b.txt"); //记事本文件存在 File file3 = new File("b/c"); //问价夹存在 //判断路径是否存在 boolean boo1 = file.exists(); System.out.println(boo1); //true boolean boo2 = file1.exists(); System.out.println(boo2);//fasle //判断调用对象对应的文本文件是不是文件 boolean boo3 = file2.isFile(); System.out.println(boo3);//true //判断调用者对象对应的文件是不是文件夹 boolean boo4 = file3.isDirectory(); System.out.println(boo4);//true } } ## File的获取功能 ## ### 1、getAbsolutePath(): ### > 获取文件对象的绝对路径 ### 2、getPath(): ### > 获取构造方法传入的路径 ( 工程中传入的路径是什么,获取的就是什么) ### 3、getName(): ### > 获取文件对象的文件名 ( 获取到的只是单纯的文件名) > > **文件对象的名**:包含包路径的全限定类名 > **但是这个方法获取的是不包含包路径的文件名** ### 4、length(): ### > 获取文件中内容的长度,单位字节 > > **使用场景:** > 主要是给**文件的File对象**调用的,文件夹对象调用没有意义。 > 文件夹没有大小【大小根据内部文件的大小决定】 ### 5、String\[\] list(): ### > 获取文件夹下**所有文本文件的文件名**,返回值是一个字符串数组 ### 6、File\[\] listFiles(): ### > 获取文件夹下**所有文本文件的File对象**,返回值是一个**File数组** **代码示例:** import java.io.File; import java.util.Arrays; public class FileDemo3 { public static void main(String[] args) { //创建要操作的File对象 File file = new File("a/b.txt"); //获取文件对象的绝对路径 File file2 = file.getAbsoluteFile(); System.out.println(file2); //E:\a\b.txt //获取构造方法传入的路径 System.out.println(file.getPath()); //a\b.txt //获取文件对象的文件名 System.out.println(file.getName()); //b.txt //获取文件中内容的长度(文件大小的字节数) System.out.println(file.length()); //99 //获取文件夹下所有文本文件的文件名,返回值是一个字符串数组 File file3 = new File("a"); String[] list = file3.list(); //遍历数组 System.out.println(Arrays.toString(list)); //[b.txt, 新建文件夹, 新建文件夹 (2), 新建文件夹 (3)] //获取文件夹下所有文本文件的File对象,返回值是一个File数组 File[] file4 = file3.listFiles(); for (File file5 : file4) { System.out.print(file5 + " "); //a\b.txt a\新建文件夹 a\新建文件夹 (2) a\新建文件夹 (3) } } } ### 获取功能的练习 ### > 键盘录入一个字符串,表示一个文件夹路径,如果不是文件夹路径则提示重新录入,并打印此文件夹下所有大于20M的后缀名为.mp4的文件名 是文件夹: 分析: 【重复录入的过程 肯定使用while循环】 判断录入的路径是不是文件夹路径【循环体判断】 把路径变为文件File对象 调用isDirectory方法判断 是【true】: 1、打印当前文件夹下,所有的大于 50M 的后缀名是.mp4 的文件的文件名 ①、获取所有的文件的File对象 ②、遍历获取到大的File对象的数组得到单个File对象【录入的文件夹下文件的File对象】 ③、判断File对象是不是文件 是: 1、分别获取大小和名称 2、判断大小是否大于50M同时名称是不是.mp4结尾 满足:打印文件名 2、停止录入【break】 不是【false】: 提示不对重新录入 **代码示例:** import java.io.File; import java.util.Scanner; /** *键盘录入一个字符串,表示一个文件夹路径, *如果不是文件夹路径则提示重新录入 * 并打印此文件夹下所有大于20M的后缀名为.mp4的文件名 */ public class Demo01 { public static void main(String[] args) { //创建键盘录入对象 Scanner scanner = new Scanner(System.in); //通过while循环进行循环录入 while (true) { System.out.println("请输入一个文件夹路径: "); String str = scanner.nextLine(); //获取录入的路径,创建File对象 File file = new File(str); //判断录入的是否为文件夹 if (file.isDirectory()) { //如果存在,则获取当前文件夹下所有的文件对象 File[] list1 = file.listFiles(); //遍历文件对象,找出所有问价大于50M并以.mp4结尾的文件 for (File file2 : list1) { if (file2.length() > 50* 1024 * 1024 && file2.getName().endsWith(".mp4")) { System.out.println(file2.getName()); } } break; }else { System.out.println("输入有误,请重新输入"); } } } }
相关 File类 一、概述 1、文件和目录路径名的抽象表示形式。 2、`File` 类的实例是不可变的;也就是说,一旦创建,`File` 对象表示的抽象路径名将永不改变。 二、构造方 曾经终败给现在/ 2023年10月07日 21:53/ 0 赞/ 47 阅读
相关 File类 概述: java中对文本文件这种事物的一种描述的类,定义一些可以操作文本文件的功能和属性 一个文件文件的路径对应就有一个File对象,这个File文件对象就 可以操作 灰太狼/ 2022年12月31日 13:19/ 0 赞/ 171 阅读
相关 File类 1. File类用于操作文件,I/O流用于操作文件内容(读写)。 2. 新建的File文件如果是相对路径,则默认在JVM运行时所在的地方。 3. boolean isAb £神魔★判官ぃ/ 2022年08月21日 14:54/ 0 赞/ 164 阅读
相关 File类 File File类封装了一个路径。 绝对路径是一个固定的路径,从盘符开始。 相对路径相对于某个位置,在eclipse是指当前项目下。 构造方法: Fi 矫情吗;*/ 2022年06月17日 05:23/ 0 赞/ 200 阅读
相关 Files类 创建文件 Files类中提供了createFile()方法,该方法用于实现创建文件。该方法语法格式如下: Files.create 墨蓝/ 2022年06月04日 07:27/ 0 赞/ 183 阅读
相关 File类 File类 一、File类的概述和构造方法 \ A:File类的概述 \ File更应该叫做一个路径 \ 文件路径或者文件夹 深藏阁楼爱情的钟/ 2022年05月23日 04:12/ 0 赞/ 167 阅读
相关 File类 1. File类 1. File的每一个实例用于表示文件系统中的一个文件或目录 2. 使用File可以: 1. 查看其表示的文件或目录的属性信息( 待我称王封你为后i/ 2022年03月09日 08:45/ 0 赞/ 187 阅读
相关 Files类 据说这个Files类在jdk1.7就有了 下面我们来了解一下常用的方法 创建文件 Files类中提供了createFile()方法,该方法用于实现创建文件。该方法语 约定不等于承诺〃/ 2022年02月14日 08:41/ 0 赞/ 208 阅读
相关 File类 File类 File类主要用来获取文件本身的相关信息,比如文件所在目录、文件长度或者文件独写权限,不涉及文件的具体的读写操作。 构造方法 File(Str Myth丶恋晨/ 2021年08月30日 00:03/ 0 赞/ 353 阅读
还没有评论,来说两句吧...