传说的背影2077 2021-05-31 17:27 采纳率: 0%
浏览 17

请问为什么我这个异常没被捕获啊

import java.io.*;
import java.util.Scanner;

public class CopyFile {
    public static void copyFolder(String resource, String target)throws Exception{
        File resourceFile = new File(resource);
        File targetFile = new File(target);
        if(!targetFile.exists()){
            targetFile.mkdirs();
        }
        File[] resourceFiles = resourceFile.listFiles();
        for (File file : resourceFiles){
            File file1 = new File(targetFile.getAbsolutePath() + File.separator + file.getName());
            if(file.isFile()){
                System.out.println("文件" + file.getName());
                copyFile(file,file1);
            }
            if(file.isDirectory()){
                String dir1 = file.getAbsolutePath();
                String dir2 = file1.getAbsolutePath();
                copyFolder(dir1,dir2);
            }
        }
    }

    public static void copyFile(File resouece, File target)throws Exception{
        FileInputStream inputStream = new FileInputStream(resouece);
        BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
        FileOutputStream outputStream = new FileOutputStream(target);
        BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(outputStream);
        byte[] bytes = new byte[1024*10];
        int len = 0;
        while ((len = inputStream.read(bytes))!= -1){
            bufferedOutputStream.write(bytes, 0, len);
        }
        bufferedOutputStream.flush();
        bufferedInputStream.close();
        bufferedOutputStream.close();
        inputStream.close();
        outputStream.close();
    }

    public static void judgeType(String resource, String target) throws Exception {

        File resourceJudge = new File(resource);
        if(!resourceJudge.exists()){
            throw new Exception("源路径:[" + resource + "]不存在");
        }
        if(!target.contains(":")){
            target = resourceJudge.getParent() + File.separator + target;
        }
        File targetJudge = new File(target);
        if(resourceJudge.isDirectory()){
            if(targetJudge.isFile()){
                System.out.println("源路径为文件夹,目标路径为文件,无法复制");
                Scanner sc =new Scanner(System.in);
                System.out.println("请重新输入源地址");
                resource = sc.nextLine();
                System.out.println("请重新输入目标地址");
                target = sc.nextLine();
                judgeType(resource,target);
            }else {
                copyFolder(resource,target);
            }
        }else {
            if(targetJudge.isDirectory()){
                target = target + File.separator + resourceJudge.getName();
                targetJudge = new File(target);
                copyFile(resourceJudge,targetJudge);

            }else {
                copyFile(resourceJudge,targetJudge);
            }
        }
    }

    public static void main(String[] args){
        String resource,target;
        Scanner sc =new Scanner(System.in);
        System.out.println("请输入源地址");
        resource = sc.nextLine();
        System.out.println("请输入目标地址(在同一目录下复制只需要输入新的文件或文件夹名字)");
        target = sc.nextLine();
        try {
            judgeType(resource,target);
        }catch (Exception e){
            e.printStackTrace();
        }

    }
}

 

  • 写回答

1条回答 默认 最新

  • 封印di恶魔 2021-06-01 17:44
    关注

    e.printStackTrace();  这句是输出你截图的部分的  是被捕获了,只不过你又输出出来了

    评论

报告相同问题?

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测