java-File类

File 类

a 基础概念

我们在操作系统(windows,Linux,mac,os)中经常操作两种数据: 文件和文件夹操作系统通过路径来唯一定位一个文件或文件夹

文件:File

文件夹:Directory(dir)

路径:path

b 绝对路径和相对路径

File(String pathname)

pathname :路径名 即可以传相对路径 又可以传绝对路径

File(File parent,String Child) :原理同下 只不过parent 的类型是file对象

根据parent 抽象路径名 和child 路径名字符串创建一个新的File 实例

  • File(String parent, String child)

根据parent 路径名字符串 路径名字符串创建一个新的File 实例

parent 一般传文件文件夹路径 child一般传文件名路径 最终都是拼接到一块

file类中的判断方法

  • boolean exists() 如果指定的路径存在该文件夹那么返回为true

相对路径

File  file1 = new File("day15/src/File","1.txt");
System.out.println(file1.exists());

绝对路径必须以盘符开头 写死了

相对路径 工程目录

  • boolean isDirectory() 测试抽象路径表示的文件是一个目录

如果当前路径不是一个目录返回false 不存在也是

File file3 = new File("day15/src/File");
System.out.println(file3.isDirectory());//true
  • boolean isFile() 如果当前路径不是一个文件返回false 不存在也是

File 类的创建功能

boolean creatNewFile() 需要异常处理

File file4 = new File("day15/src/File/2.txt");
System.out.println(file4.createNewFile()); 

可以根据绝对路径或者相对路径创建一个空文件,创建成功返回true

如果指定的路径中当前文件存在 则返回false

如果指定的路径在盘符不存在那么直接抛出IOException 系统找不到指定的路径

  • boolean mkdir() 根据指定的路径创建文件夹 如果创建成功返回true 同上

boolean mkdir() 根据指定的路径创建文件夹 如果创建成功则返回true

如果指定的路径便是该文件夹已存在则返回false

只能创建文件夹不能创建文件 也不能创建多级文件只能创建单级文件

  • boolean mkdirs()

可以创建多级文件

File f = new File("day15/2/1");
System.out.println(f.mkdirs());
  • boolean delete()

    File类中的delete() 方法删除文件或者文件夹不走回收站 并且不能删除多级文件夹 必须为空才能删除

File 类的获取功能

String getName() 返回的是最后一级路径

String getPath() 将此抽象路径名转换为一个路径名字符串

String getPath() 根据封装对象的路径来返回该路径

long length() 获取文件长度 单位是字节 只能获取文件长度

String getParent() 返回该方法返回父级路径(最后一级路径前面的所有路径)

File file = new File("D:\\test\\javaSE\\day15\\src\\File\\1.txt");
System.out.println(file.getParent());//D:\test\javaSE\day15\src\File

File getParentFile() 返回此抽象路径名父目录的抽象路径名

File file = new File("D:\\test\\javaSE\\day15\\src\\File\\1.txt");
System.out.println(file.getParent());
File parentFile = file.getParentFile();
System.out.println(parentFile.exists());

String getAbsoultPath() 无论File对象中封装的什么路径 返回此抽象路径的绝对路径

File getAbsoultFile() 同上不过 返回的是File类型 可以接着使用File中的方法、

  • String[] list() 获取指定路径下的文件或文件夹的名称。将这些名称封装到一个字符串数组中,返回这个字符串数组 只能获取当前文件夹下的一级文件 子级获取不到,如果路径表示一个文件路径,该方法返回Null 遍历Null会报空指针异常

File file3 = new File("day15/src");
String[] list = file3.list();
for ( String o: list){
    System.out.println(o);
}
  • File[] listFiles() 获取指定路径下的文件文件夹路径 将这些路径封装到一个File[] 数组中 如果指定的文件夹路径是相对路径那么将来输出File[] 数组中的File对象,最终结果是一个相对路径 且只能遍历文件夹

递归 recursion

递归容易栈内存溢出

利用递归的思想打印包下的所有文件名称

public static void method(File dir){
    File[] files = dir.listFiles();
    for (File f : files){
        if (f.isFile()){
            System.out.println(f.getName());
        }else {
            method(f);
        }
    }
}
  • 14
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值