Java基础-File常见函数操作演示

起头

public class FileDemo {
    public static void main(String[] args) throws Exception {
    //此处throws抛出异常在后面出现

1.演示创建目录

		String path = "FileDemo";
		File f = new File(path);
   		f.mkdir();//创建单级目录
    	System.out.println(f.getAbsoluteFile());//输出绝对路径
    	String path = "FileDemob\\c\\d";
    	File f = new File(path);
    	f.mkdirs();//创建多级目录      
        //????未成功 问题一
		//解决:
 		String path = "FileDemo"+File.separator+"a"+File.separator+"b";
        //使用分隔符可解决,Linux只支持正斜杠,反斜杠需要使用函数File.separator()
        File f = new File(path);
        f.mkdirs();//成功

2.创建文件

		String path = "FileDemo"+File.separator+"a.txt";//使用了分隔符就可以创建在制定目录
        File f = new File(path);
        f.createNewFile();

此处需要抛出异常,io异常

3.判断File对象是文件还是目录

		String path = "FileDemo"+File.separator+"a.txt";//使用了分隔符就可以创建在制定目录
        File f = new File(path);
        System.out.println(f.isDirectory());//是否是目录 out:false
        System.out.println(f.isFile());//是否是文件 out:true

4.判断file存在与否

 		File f1 = new File("FileDemo"+File.separator+"a.txt");
        System.out.println(f1.exists());//out:ture

5.关于文件的只读模式 、只写、读写 都在File类当中

6.父路径 f.getParent().sout

7.文件大小 f.length().sout

8.获取文件名 f.getName().sout

9.删除文件或目录

f.delete();
f.delateOnExit();在存在情况下删除-常用

删除目录的条件:

  • 1 单级删除,不可多级删除;
  • 2 必须目录为空才能删除

10.列举目录下的所有file实例

		File f = new File("FileDemo");
        File[] fs = f.listFiles();
        //简写fs.st回车 .forEach
        Arrays.stream(fs).forEach(System.out::println);//流式操作-打印FileDemo下的所有文件,是带绝对路径的
        String[] fs  = f.list();
        Arrays.stream(fs).forEach(System.out::println);//只打印文件名 相当于调用了getName()

11.补充:文件过滤器FileFilter

  1. 用文件数组存储,从f中过滤出来符合MyFileFilter的文件
    list()方法是返回某个目录下的所有文件和目录的文件名,返回的是String数组
    listFiles()方法是返回某个目录下所有文件和目录的绝对路径,返回的是File数组
   //11.补充:文件过滤器FileFilter
        File f = new File("FileDemo");
        File[] fs = f.listFiles(new MyFileFilter());
  1. 使用拉姆达lambda表达式 好处:直接修改contains()中的字符串就可以修改需要过滤的对象
         listFiles()需要一个参数 f1是参数名 自己起的
        File[] fs = f.listFiles((f1) -> f1.getName().contains(".txt"));
        Arrays.stream(fs).forEach(System.out::println);
  1. 使用方法引用
        MyFile中accept是非静态的需要创建对象才能引用
        MyFileFilter my = new MyFileFilter();
        File[] fs = f.listFiles(my::accept);
        Arrays.stream(fs).forEach(System.out::println);

12.补充二:列举逻辑驱动器的信息

  File[] fs = File.listRoots();
        //Arrays.stream(fs).forEach(System.out::println);
        for(File f:fs){
            System.out.println(f);
            System.out.println(f.getTotalSpace());//获取基础驱动器的总大小
            System.out.println(f.getFreeSpace());//获取剩余空间的大小
            System.out.println(f.getUsableSpace());//获取可用空间的大小
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值