Flie类

Flie类1 java io File 类的使用 1 1 概述 对 File 类的理解 File 类位于 java io 包下 File 类的一个对象 对应于操作系统下的一个文件或一个文件目录 文件夹 与平台无关 体会万事万物皆对象 File 能新建 删除 重命名文件和文件目录 但是 File 不能访问文件内容本身

大家好,我是讯享网,很高兴认识大家。
1.java.io.File类的使用
1.1 概述

对File类的理解:

  • File类位于java.io包下;
  • File类的一个对象,对应于操作系统下的一个文件或一个文件目录(文件夹),与平台无关;(体会万事万物皆对象)
  • File能新建、删除、重命名文件和文件目录,但是File不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入输出流;
    • File对象可以作为参数传递给流的构造器。
  • 想要在java程序在表示一个真实存在的文件或目录,那么必须有一个File对象,但是java程序中的一个File对象,可能没有一个真实存在的文件或目录。
1.2 构造器
  • public File(String pathname) :以pathname为路径创建File对象,可以是绝对路径或者相对路径,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储。
  • public File(String parent, String child) :以parent为父路径,child为子路径创建File对象。
  • public File(File parent, String child) :根据一个父File对象和子文件路径创建File对象

关于文件路径的表示方法:

1.绝对路径:以Windows为例,包括盘符在内的文件或文件目录的完整路径

2.相对路径:相对于某一个文件目录来讲的相对的位置

注意:在idea中,如果使用单元测试方法,相对于当前的module来讲;如果使用main()方法,相对于当前的project来讲

代码示例:

public static void main(String[] args) { 
    File file = new File("ams"); System.out.println("main()方法下的绝对路径:" + file.getAbsoluteFile()); //main()方法下的绝对路径:E:\Java\workplace\java_workplce\java-se-day21\file-study\ams } @Test public void test1(){ 
    //熟悉创建File对象的创建 //创建的文件对象没有在真实的硬盘中线 //File(String pathname) pathname 文件的抽象路径名(文件的路径+文件名) File file = new File("D:\\Program Files\\feiq"); System.out.println("file: " + file); //file: D:\Program Files\feiq //File(String patent,String child) parent+child = pathname //参数1:一定是一个文件目录 //参数2:可以是一个文件,也可以是一个文件目录 File file1 = new File("D:\\Steam\\steamapps\\common", "Devil May Cry 5"); System.out.println("file1: " + file1); //file1: D:\Steam\steamapps\common\Devil May Cry 5 File file5 = new File("abc", "a12"); File file2 = new File("D:\\Steam\\steamapps\\common\\dota 2 beta", "game\\bin"); System.out.println("file2: " + file2); //file2:D:\Steam\steamapps\common\dota 2 beta\game\bin //File(File parent,String child) //参数1:一定是一个文件目录 //参数2:可以是一个文件目录,也可以是文件 File file3 = new File(file1, "dota 2 beta"); System.out.println("file3: " + file3);//file3: D:\Steam\steamapps\common\Devil May Cry 5\dota 2 beta File file4 = new File("ame"); //获取file4的绝对路径 System.out.println("单元测试方法下的绝对路径:" + file4.getAbsoluteFile()); //E:\Java\workplace\java_workplce\java-se-day21\file-study\ame } 

讯享网
1.3 常用方法
1.3.1 获取文件和基本信息
  • public String getName() :获取名称
  • public String getPath() :获取路径
  • public String getAbsolutePath():获取绝对路径
  • public File getAbsoluteFile():获取绝对路径表示的文件
  • public String getParent():获取上层文件目录路径。若无,返回null
  • public long length() :获取文件长度(即:字节数)。不能获取目录的长度。
  • public long lastModified() :获取最后一次的修改时间,毫秒值

代码示例:

讯享网 @Test public void test1(){ 
    //测试相对路径下的方法: File file = new File("hello.txt"); //在module下创建了一个hello.txt,输入了1-8 System.out.println("文件名称为:" + file.getName()); System.out.println("文件构造路径为:" + file.getPath()); System.out.println("文件的绝对路径为:" + file.getAbsolutePath()); System.out.println("文件绝对路径表示的文件:" + file.getAbsoluteFile()); System.out.println("上层文件目录获取:" + file.getAbsoluteFile().getParent()); System.out.println(file.getParent()); //由于是相对路径,没有指定父类,所以返回null System.out.println("文件长度为:" + file.length() + "字节"); //此处是将时间戳转为年月日 Date date = new Date(file.lastModified()); // System.out.println(date.toLocaleString()); System.out.println("文件的最后修改时间为:" + date); } 

在这里插入图片描述
讯享网

@Test public void test2(){ 
    File file = new File("D:\\Steam\\steamapps\\common"); System.out.println("文件名称为:" + file.getName()); System.out.println("文件构造路径为:" + file.getPath()); System.out.println("文件的绝对路径为:" + file.getAbsolutePath()); System.out.println("文件绝对路径表示的文件:" + file.getAbsoluteFile()); System.out.println("上层文件目录获取:" + file.getAbsoluteFile().getParent()); System.out.println(file.getParent()); //由于是绝对路径,有指定父类,所以返回上层路径 System.out.println("文件长度为:" + file.length() + "字节"); //此处是将时间戳转为年月日 Date date = new Date(file.lastModified()); // System.out.println(date.toLocaleString()); System.out.println("文件的最后修改时间为:" + date); } 

在这里插入图片描述

(此处是打印输出我的steam文件下的文件夹的路径)

1.3.2 列出目录的下一级
  • public String[] list() :返回一个String数组,表示该File目录中的所有子文件或目录。
  • public File[] listFiles() :返回一个File数组,表示该File目录中的所有的子文件或目录。

代码示例:

讯享网@Test public void test3(){ 
    File file = new File("D:\\Steam\\steamapps\\common"); String[] list = file.list(); for (String s : list) { 
    System.out.print(s + "\t\t"); } System.out.println(); System.out.println("-------------------------------"); File[] files = file.listFiles(); for (File file1 : files) { 
    System.out.println(file1 + "\t"); } } 

在这里插入图片描述

1.3.3 File的重命名方法
  • public boolean renameTo(File dest):把文件重命名为指定的文件路径。
/ * File的重命名方法: * public boolean renameTo(File dest):把文件重命名为指定的文件路径。 * 如果是绝对路径,才会移动到磁盘,如果是相对路径,就是只修改文件名 * * boolean renameTo = file1.renameTo(file2);返回true的要求: * file1必须存在,且file2必须不存在,且file2所在的文件目录必须存在 */ @Test public void test4(){ 
    File file1 = new File("hello.txt"); File file2 = new File("D:\\io\\common"); boolean renameTo = file1.renameTo(file2); System.out.println(renameTo?"重命名成功":"重命名失败"); } 
1.3.4 判断功能的方法
  • public boolean exists() :此File表示的文件或目录是否实际存在。
  • public boolean isDirectory() :此File表示的是否为目录。
  • public boolean isFile() :此File表示的是否为文件。
  • public boolean canRead() :判断是否可读
  • public boolean canWrite() :判断是否可写
  • public boolean isHidden() :判断是否隐藏

代码示例:

讯享网@Test public void test5(){ 
    File file = new File("D:\\io\\common"); System.out.println("文件是否存在?:" + file.exists()); System.out.println("文件是否是目录?:" + file.isDirectory()); System.out.println("是否是文件?:" + file.isFile()); System.out.println("文件是否可读?:" + file.canRead()); System.out.println("文件是否可编辑?" + file.canWrite()); System.out.println("文件是否隐藏?:" + file.isHidden()); System.out.println("--------------------------------------------"); File file1 = new File("D:\\io"); System.out.println("文件是否存在?:" + file.exists()); System.out.println("文件是否是目录?:" + file.isDirectory()); System.out.println("是否是文件?:" + file.isFile()); System.out.println("文件是否可读?:" + file.canRead()); System.out.println("文件是否可编辑?" + file.canWrite()); System.out.println("文件是否隐藏?:" + file.isHidden()); } 
输出结果: 文件是否存在?:true 文件是否是目录?:false 是否是文件?:true 文件是否可读?:true 文件是否可编辑?true 文件是否隐藏?:false -------------------------------------------- 文件是否存在?:true 文件是否是目录?:false 是否是文件?:true 文件是否可读?:true 文件是否可编辑?true 文件是否隐藏?:false Process finished with exit code 0 

1.3.5 创建、删除功能

  • public boolean createNewFile() :创建文件。若文件存在,则不创建,返回false。
  • public boolean mkdir() :创建文件目录。如果此文件目录存在,就不创建了。如果此文件目录的上层目录不存在,也不创建。
  • public boolean mkdirs() :创建文件目录。如果上层文件目录不存在,一并创建。
  • public boolean delete() :删除文件或者文件夹
    删除注意事项:① Java中的删除不走回收站。② 要删除一个文件目录,请注意该文件目录内不能包含文件或者文件目录。

代码示例:

讯享网@Test public void test6() throws IOException { File file = new File("D:\\io\\hello.txt"); //没有文件就创建文件 if (!file.exists()) { file.createNewFile(); System.out.println("文件创建成功"); }else { System.out.println("文件已存在"); //删除注意事项:① Java中的删除不走回收站。② 要删除一个文件目录,请注意该文件目录内不能包含文件或者文件目录。 boolean delete = file.delete(); System.out.println(delete?"文件删除成功":"文件删除失败"); } } @Test public void test7(){ File file = new File("D:\\io\\io1"); boolean mkdir = file.mkdir(); System.out.println(mkdir); File file1 = new File("D:\\io\\io2"); boolean mkdirs = file1.mkdirs(); System.out.println(mkdirs); } @Test public void test8(){ //前提:D:\io存在,io1,io2不存在 File file = new File("D:\\io\\io1\\io8"); //false,因为只能创建一个文件夹 boolean mkdir = file.mkdir(); System.out.println(mkdir); File file1 = new File("D:\\io\\io2\\io4");//true,可以创建多级文件夹 boolean mkdirs = file1.mkdirs(); System.out.println(mkdirs); } } 
小讯
上一篇 2025-01-25 23:19
下一篇 2025-03-29 22:29

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/61314.html