花几千上万学习Java,真没必要!(三十六)

1、File类:

测试代码1:

package filetest.com;
import java.io.File;  
import java.io.IOException;  
public class FileOperations {  
    public static void main(String[] args) {  
        // 创建新文件
        File file = new File("example.txt");  
        try {  
            if (file.createNewFile()) {  
                System.out.println("文件 example.txt 创建成功");  
            } else {  
                System.out.println("文件 example.txt 已存在");  
            }  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
  
        // 创建单级目录的示例  
        File dir = new File("singleDir");  
        if (dir.mkdir()) {  
            System.out.println("单级目录 singleDir 创建成功");  
        } else {  
            System.out.println("单级目录 singleDir 已存在或无法创建");  
        }  
  
        // 创建多级目录的示例  
        File dirs = new File("multiLevelDir/level2/level3");  
        if (dirs.mkdirs()) {  
            System.out.println("多级目录 multiLevelDir/level2/level3 创建成功");  
        } else {  
            System.out.println("多级目录 multiLevelDir/level2/level3 已存在或无法创建");  
        }  

    }  
}

运行结果如下:

  

测试代码2:

package filetest.com;
import java.io.File;  

public class FileGetDemo {  
    public static void main(String[] args) {  
        // 创建一个File对象,指向一个存在的目录或文件
        File file = new File("E:\\Test");  
  
        // 判断功能  
        System.out.println("Exists? " + file.exists());  
        System.out.println("Is directory? " + file.isDirectory());  
        System.out.println("Is file? " + file.isFile());  
  
        // 如果file是一个目录  
        if (file.isDirectory()) {  
            // 获取功能  
            System.out.println("Absolute Path: " + file.getAbsolutePath());  
            System.out.println("Path: " + file.getPath());  
            System.out.println("Name: " + file.getName());  
  
            // 列出目录中的文件和目录  
            File[] files = file.listFiles();  
            if (files != null) {  
                for (File f : files) {  
                    System.out.println(f.getName());  
                }  
            } else {  
                System.out.println("Failed to list directory contents.");  
            }  
  
            // 删除功能 
            // boolean deleted = file.delete();  
            // System.out.println("Deleted? " + deleted);  
        } else if (file.isFile()) {  
            // 对于文件,通常不会调用list()或listFiles(),它们是针对目录的  
            // 但可以获取文件的路径和名称  
            System.out.println("File Absolute Path: " + file.getAbsolutePath());  
            System.out.println("File Path: " + file.getPath());  
            System.out.println("File Name: " + file.getName());  
  
            // 删除文件 
            boolean deleted = file.delete();  
            System.out.println("File Deleted? " + deleted);  
		}

    }  
}

3、递归调用:

测试代码;

package filetest.com;
public class FactorialExample {  
	  
    public static void main(String[] args) {  
        // 调用递归函数计算20的阶乘,并输出结果  
        System.out.println("100的阶乘是: " + factorial(20));  
    }  
  
    // 递归函数计算阶乘  
    public static long factorial(int n) {  
        // 递归的出口:当n为0或1时,返回1(因为0的阶乘和1的阶乘都定义为1)  
        if (n <= 1) {  
            return 1;  
        }  
        // 递归步骤:n的阶乘等于n乘以(n-1)的阶乘  
        return n * factorial(n - 1);  
    }  
}

运行结果如下:

 

4、递归遍历目录:

测试代码:

package filetest.com;
import java.io.File;  

public class DirectoryTraverser {  
  
    public static void main(String[] args) {  
        // 假设路径是硬编码的,但在实际应用中,你可能希望从命令行参数中获取它  
        String directoryPath = "E:\\javaproject";  
        File directory = new File(directoryPath);  
  
        // 调用递归方法来遍历目录  
        traverseDirectory(directory);  
    }  
  
    /**  
     * 递归遍历目录  
     *  
     * @param directory 要遍历的目录  
     */  
    public static void traverseDirectory(File directory) {  
        // 确保这是一个目录  
        if (directory.isDirectory()) {  
            // 获取目录下的所有文件和子目录  
            File[] files = directory.listFiles();  
            if (files != null) {  
                for (File file : files) {  
                    // 如果是文件,则打印其绝对路径  
                    if (file.isFile()) {  
                        System.out.println(file.getAbsolutePath());  
                    } else if (file.isDirectory()) {  
                        // 如果是目录,则递归调用此方法  
                        traverseDirectory(file);  
                    }  
                }  
            }  
        } else {  
            // 如果给定的路径不是目录,可以抛出一个异常或打印一条消息  
            System.out.println(directory.getAbsolutePath() + " 不是一个目录");  
        }  
    }  
}

运行结果如下:

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值