• java.io.File类常用的方法


    目录

    目标

    方法集锦

    获取文件的绝对路径

    获取文件和文件夹名称

    获取文件所在目录

    创建文件

    创建文件夹

    删除文件或文件夹

    判断文件或文件夹是否存在

    判断是否是文件夹

    判断是否是文件

    判断是否是隐藏文件

    查询文件和文件夹最后修改的时间

    查询文件内容的字节数量

    获取当前目录下所有文件名称和文件夹名称

    获取当前目录下所有文件和文件夹的全路径

    筛选出当前目录下所有符合过滤器的文件

    获取当前目录及所有子目录下的所有文件

    获取当前目录及所有子目录下的所有文件夹

    获取目录下所有的叶子目录

    获取目录下所有的空叶子目录

    获取目录下所有的非空叶子目录


    目标

    了解java.io.File类常用的方法。


    方法集锦

    使用到的常量

    1. //文件
    2. public static final String MY_FILE = "C:\\Users\\huangshang\\Desktop\\demo\\es.txt";
    3. //文件2
    4. public static final String MY_FILE_TWO = "C:\\Users\\huangshang\\Desktop\\demo\\logs\\es.txt";
    5. //文件夹
    6. public static final String MY_DIR = "C:\\Users\\huangshang\\Desktop\\demo";
    7. //文件夹2
    8. public static final String MY_DIR_TWO = "C:\\Users\\huangshang\\Desktop\\demo\\config";

    获取文件的绝对路径

    1. public void getAbsoluteFilePath() throws IOException {
    2. File file = new File(MY_FILE);
    3. //返回File类型
    4. File absoluteFile = file.getAbsoluteFile();
    5. System.out.println(absoluteFile);
    6. //返回String类型
    7. String absolutePath = file.getAbsolutePath();
    8. System.out.println(absolutePath);
    9. }

    获取文件和文件夹名称

    1. public void getFileName() {
    2. File file = new File(MY_FILE);
    3. String name = file.getName();
    4. System.out.println(name);
    5. }

    获取文件所在目录

    1. public void getParentFile() {
    2. File file = new File(MY_FILE_TWO);
    3. //返回String类型
    4. String name = file.getParent();
    5. System.out.println(name);
    6. //返回File类型
    7. File parentFile = file.getParentFile();
    8. System.out.println(parentFile);
    9. }

    创建文件

    1. public void createFile() throws IOException {
    2. File file = new File(MY_FILE);
    3. file.createNewFile();
    4. File absoluteFile = file.getAbsoluteFile();
    5. System.out.println(absoluteFile);
    6. }

    创建文件夹

    1. public void createDir(){
    2. File file = new File(MY_DIR_TWO);
    3. file.mkdir();
    4. File absoluteFile = file.getAbsoluteFile();
    5. System.out.println(absoluteFile);
    6. }

    删除文件或文件夹

    1. public void deleteFile() {
    2. File file = new File(MY_DIR_TWO);
    3. file.delete();
    4. }

    判断文件或文件夹是否存在

    1. public void isExist(){
    2. File myFile = new File(MY_FILE);
    3. File myDir = new File(MY_DIR);
    4. System.out.println(myFile.exists());
    5. System.out.println(myDir.exists());
    6. }

    判断是否是文件夹

    1. public void isDir(){
    2. File myFile = new File(MY_FILE);
    3. File myDir = new File(MY_DIR);
    4. System.out.println(myDir.isDirectory());
    5. System.out.println(myFile.isDirectory());
    6. }

    判断是否是文件

    1. public void isDir(){
    2. File myFile = new File(MY_FILE);
    3. File myDir = new File(MY_DIR);
    4. System.out.println(myFile.isFile());
    5. System.out.println(myDir.isFile());
    6. }

    判断是否是隐藏文件

    1. public void isHidden(){
    2. File myFile = new File(MY_FILE);
    3. File myDir = new File(MY_DIR);
    4. System.out.println(myFile.isHidden());
    5. System.out.println(myDir.isHidden());
    6. }

    查询文件和文件夹最后修改的时间

    1. public void lastModified(){
    2. File myFile = new File(MY_FILE);
    3. File myDir = new File(MY_DIR);
    4. System.out.println(getFormatDate(myFile.lastModified()));
    5. System.out.println(getFormatDate(myDir.lastModified()));
    6. }
    7. public String getFormatDate(long time){
    8. Date date = new Date(time);
    9. SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    10. String dateString = formatter.format(date);
    11. return dateString;
    12. }

    查询文件内容的字节数量

    1. public void fileSize(){
    2. File myFile = new File(MY_FILE);
    3. System.out.println(myFile.length());
    4. }

    获取当前目录下所有文件名称和文件夹名称

    1. public void fileNameArr(){
    2. File dir = new File(MY_DIR);
    3. String[] arr = dir.list();
    4. for (String s : arr) {
    5. System.out.println(s);
    6. }
    7. }

    获取当前目录下所有文件和文件夹的全路径

    1. public void fileAbsolutePathArr(){
    2. File dir = new File(MY_DIR);
    3. File[] files = dir.listFiles();
    4. for (File s : files) {
    5. System.out.println(s.getAbsolutePath());
    6. }
    7. }

    筛选出当前目录下所有符合过滤器的文件

    1. public void filefilter(){
    2. File dir = new File(MY_DIR);
    3. String[] arr = dir.list(new FilenameFilter() {
    4. /**
    5. *
    6. * @param dir 文件所在的目录。
    7. * @param name 文件的名称。
    8. * @return
    9. */
    10. @Override
    11. public boolean accept(File dir, String name) {
    12. //筛选出txt格式的文件
    13. if(name.endsWith(".txt")){
    14. System.out.println("文件过滤器筛选出符合条件的文件:"+dir+"\\"+name);
    15. return true;
    16. }
    17. return false;
    18. }
    19. });
    20. for (String s : arr) {
    21. System.out.println(s);
    22. }
    23. }

    获取当前目录及所有子目录下的所有文件

    1. public List getAllFilesByDir(List<File> list, File file){
    2. if(file.isFile()){
    3. list.add(file);
    4. }else{
    5. File[] files = file.listFiles();
    6. if(files !=null&& files.length>0){
    7. for (File f : files) {
    8. getAllFilesByDir(list,f);
    9. }
    10. }
    11. }
    12. return list;
    13. }

    获取当前目录及所有子目录下的所有文件夹

    1. public List getAllDirs(List<File> list, File file){
    2. if(file.isDirectory()){
    3. list.add(file);
    4. File[] files = file.listFiles();
    5. if(files !=null&& files.length>0){
    6. for (File f : files) {
    7. getAllDirs(list,f);
    8. }
    9. }
    10. }else{
    11. return new ArrayList();
    12. }
    13. return list;
    14. }

    获取目录下所有的叶子目录

    1. public List getAllEndDirs(List<File> list, File file){
    2. if(file.isDirectory()){
    3. File[] files = file.listFiles();
    4. if(files ==null || files.length==0){
    5. list.add(file);
    6. }else{
    7. boolean boo=true;
    8. for (int i=0;i<files.length;i++) {
    9. if(files[i].isDirectory()){
    10. break;
    11. }else if(i==files.length-1){//遍历该目录,发现都是文件,而没有文件夹。
    12. boo=false;
    13. list.add(file);
    14. }
    15. }
    16. if(boo){
    17. for (File f : files) {
    18. if(f.isDirectory()){
    19. getAllEndDirs(list,f);
    20. }
    21. }
    22. }
    23. }
    24. }else{
    25. return new ArrayList();
    26. }
    27. return list;
    28. }

    获取目录下所有的空叶子目录

    1. public List getAllIsNullEndDirs(List<File> list, File file){
    2. if(file.isDirectory()){
    3. File[] files = file.listFiles();
    4. if(files !=null && files.length>0){
    5. for (File f : files) {
    6. if(f.isDirectory()){
    7. getAllIsNullEndDirs(list,f);
    8. }
    9. }
    10. }else{
    11. list.add(file);
    12. }
    13. }else{
    14. return new ArrayList();
    15. }
    16. return list;
    17. }

    获取目录下所有的非空叶子目录

    1. public List getAllIsNotNullEndDirs(List<File> list, File file){
    2. if(file.isDirectory()){
    3. File[] files = file.listFiles();
    4. if(files !=null && files.length>0){
    5. boolean boo=true;
    6. for (int i=0;i<files.length;i++) {
    7. if(files[i].isDirectory()){
    8. break;
    9. }else if(i==files.length-1){//遍历该目录,发现都是文件,而没有文件夹。
    10. boo=false;
    11. list.add(file);
    12. }
    13. }
    14. if(boo){
    15. for (File f : files) {
    16. if(f.isDirectory()){
    17. getAllIsNotNullEndDirs(list,f);
    18. }
    19. }
    20. }
    21. }
    22. }else{
    23. return new ArrayList();
    24. }
    25. return list;
    26. }
  • 相关阅读:
    【云原生之k8s】K8s 管理工具 kubectl 详解(一)
    Linux -- 进阶 Web服务器 搭建基于 https 协议的静态网站 ( 预备知识 )
    Linux系统 SSHD服务安全优化方案
    PX4飞行测试
    Packet Tracer - 配置 IPv6 的 EIGRP 基本设置
    Java案例:利用dom4j解析XML文件
    Python 中 key 参数的含义及用法
    嵌入式Linux驱动开发(LCD屏幕专题)(三)
    微服务学习
    【ES6】js 中class的extends、super关键字用法和避坑点
  • 原文地址:https://blog.csdn.net/qq_39706570/article/details/125406664