JAVASE基础 Item -- File类详解_java fileitem file

本文介绍了Java中的File类及其常用方法,包括创建、删除文件和文件夹,重命名文件,以及判断文件类型、存在性、可读写性等。同时展示了如何使用FilenameFilter来过滤特定类型的文件。
摘要由CSDN通过智能技术生成

import java.io.File;
import java.io.IOException;

/*
* 删除功能:public boolean delete()
*
* 注意:
* A:如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下。
* B:Java中的删除不走回收站。
* C:要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹
*/
public class FileDemo {
public static void main(String[] args) throws IOException {
// 创建文件
// File file = new File(“e:\a.txt”);
// System.out.println(“createNewFile:” + file.createNewFile());

    // 我不小心写成这个样子了
    File file = new File("a.txt");
    System.out.println("createNewFile:" + file.createNewFile());

    // 继续玩几个
    File file2 = new File("aaa\\bbb\\ccc");
    System.out.println("mkdirs:" + file2.mkdirs());

    // 删除功能:我要删除a.txt这个文件
    File file3 = new File("a.txt");
    System.out.println("delete:" + file3.delete());

    // 删除功能:我要删除ccc这个文件夹
    File file4 = new File("aaa\\bbb\\ccc");
    System.out.println("delete:" + file4.delete());

    // 删除功能:我要删除aaa文件夹
    // File file5 = new File("aaa");
    // System.out.println("delete:" + file5.delete());

    File file6 = new File("aaa\\bbb");
    File file7 = new File("aaa");
    System.out.println("delete:" + file6.delete());
    System.out.println("delete:" + file7.delete());
}

}


重命名



package cn.itcast_04;

import java.io.File;

/*
* 重命名功能:public boolean renameTo(File dest)
* 如果路径名相同,就是改名。
* 如果路径名不同,就是改名并剪切。
*
* 路径以盘符开始:绝对路径 c:\a.txt
* 路径不以盘符开始:相对路径 a.txt
*/
public class FileDemo {
public static void main(String[] args) {
// 创建一个文件对象
// File file = new File(“林青霞.jpg”);
// // 需求:我要修改这个文件的名称为"东方不败.jpg"
// File newFile = new File(“东方不败.jpg”);
// System.out.println(“renameTo:” + file.renameTo(newFile));

    File file2 = new File("东方不败.jpg");
    File newFile2 = new File("e:\\林青霞.jpg");
    System.out.println("renameTo:" + file2.renameTo(newFile2));
}

}


##### **1.2 File类的成员方法**


* 判断功能   
 public boolean isDirectory()   
 public boolean isFile()   
 public boolean exists()   
 public boolean canRead()   
 public boolean canWrite()   
 public boolean isHidden()



package cn.itcast_05;

import java.io.File;

/*
* 判断功能:
* public boolean isDirectory():判断是否是目录
* public boolean isFile():判断是否是文件
* public boolean exists():判断是否存在
* public boolean canRead():判断是否可读
* public boolean canWrite():判断是否可写
* public boolean isHidden():判断是否隐藏
*/
public class FileDemo {
public static void main(String[] args) {
// 创建文件对象
File file = new File(“a.txt”);

    System.out.println("isDirectory:" + file.isDirectory());// false
    System.out.println("isFile:" + file.isFile());// true
    System.out.println("exists:" + file.exists());// true
    System.out.println("canRead:" + file.canRead());// true
    System.out.println("canWrite:" + file.canWrite());// true
    System.out.println("isHidden:" + file.isHidden());// false
}

}


* 基本获取功能   
 public String getAbsolutePath()   
 public String getPath()   
 public String getName()   
 public long length()   
 public long lastModified()



package cn.itcast_06;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;

/*
* 获取功能:
* public String getAbsolutePath():获取绝对路径
* public String getPath():获取相对路径
* public String getName():获取名称
* public long length():获取长度。字节数
* public long lastModified():获取最后一次的修改时间,毫秒值
*/
public class FileDemo {
public static void main(String[] args) {
// 创建文件对象
File file = new File(“demo\test.txt”);

    System.out.println("getAbsolutePath:" + file.getAbsolutePath());
    System.out.println("getPath:" + file.getPath());
    System.out.println("getName:" + file.getName());
    System.out.println("length:" + file.length());
    System.out.println("lastModified:" + file.lastModified());

    // 1416471971031
    Date d = new Date(1416471971031L);
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String s = sdf.format(d);
    System.out.println(s);
}

}


* 高级获取功能   
 public String[] list()   
 public File[] listFiles()



package cn.itcast_07;

import java.io.File;

/*
* 获取功能:
* public String[] list():获取指定目录下的所有文件和文件夹的名称数组
* public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组
*/
public class FileDemo {
public static void main(String[] args) {
// 指定一个目录
File file = new File(“e:\”);

    // public String[] list():获取指定目录下的所有文件或者文件夹的名称数组
    String[] strArray = file.list();
    for (String s : strArray) {
        System.out.println(s);
    }
    System.out.println("------------");

    // public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组
    File[] fileArray = file.listFiles();
    for (File f : fileArray) {
        System.out.println(f.getName());
    }
}

}


仅仅是访问名称,就不要第二种了,第二种还有更强大的功能,因为他拿到的是文件数组。


**示例:**判断E盘目录下是否有后缀名为.jpg的文件(不是以.jpg的文件夹),如果有,就输出此文件名称   
 方法一



package cn.itcast_08;

import java.io.File;

/*
* 判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出此文件名称
*
* 分析:
* A:封装e判断目录
* B:获取该目录下所有文件或者文件夹的File数组
* C:遍历该File数组,得到每一个File对象,然后判断
* D:是否是文件
* 是:继续判断是否以.jpg结尾
* 是:就输出该文件名称
* 否:不搭理它
* 否:不搭理它
*/
public class FileDemo {
public static void main(String[] args) {
// 封装e判断目录
File file = new File(“e:\”);

    // 获取该目录下所有文件或者文件夹的File数组
    File[] fileArray = file.listFiles();

    // 遍历该File数组,得到每一个File对象,然后判断
    for (File f : fileArray) {
        // 是否是文件
        if (f.isFile()) {
            // 继续判断是否以.jpg结尾
            if (f.getName().endsWith(".jpg")) {
                // 就输出该文件名称
                System.out.println(f.getName());
            }
        }
    }
}

}


方法二   
 文件名称过滤器的实现思想及代码   
 public String[] list(FilenameFilter filter)   
 public File[] listFiles(FilenameFilter filter)   
 查看源码看执行流程



package cn.itcast_08;

import java.io.File;
import java.io.FilenameFilter;

/*
* 判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出此文件名称
* A:先获取所有的,然后遍历的时候,依次判断,如果满足条件就输出。
* B:获取的时候就已经是满足条件的了,然后输出即可。
*
* 要想实现这个效果,就必须学习一个接口:文件名称过滤器
* public String[] list(FilenameFilter filter)
* public File[] listFiles(FilenameFilter filter)
*/
public class FileDemo2 {
public static void main(String[] args) {
// 封装e判断目录
File file = new File(“e:\”);

    // 获取该目录下所有文件或者文件夹的String数组
    // public String[] list(FilenameFilter filter)
    String[] strArray = file.list(new FilenameFilter() {
        @Override
        public boolean accept(File dir, String name) {
            // return false;
            // return true;
            // 通过这个测试,我们就知道了,到底把这个文件或者文件夹的名称加不加到数组中,取决于这里的返回值是true还是false
            // 所以,这个的true或者false应该是我们通过某种判断得到的
            // System.out.println(dir + "---" + name);
            // File file = new File(dir, name);
            // // System.out.println(file);
            // boolean flag = file.isFile();
            // boolean flag2 = name.endsWith(".jpg");
            // return flag && flag2;
            return new File(dir, name).isFile() && name.endsWith(".jpg");
        }
    });

最后

文章到这里就结束了,如果觉得对你有帮助可以点个赞哦

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

/ return flag && flag2;
return new File(dir, name).isFile() && name.endsWith(“.jpg”);
}
});

最后

文章到这里就结束了,如果觉得对你有帮助可以点个赞哦

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

[外链图片转存中…(img-UAveV3gc-1714302284222)]

  • 19
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值