java拷贝文件到另一个目录下并重命名

String pdfFileAddr="E:/phpstudy_pro/WWW/php_jr/HEMSTEST/orderPdfFile/2025/0522/czout_material/32/YCHC202503171559_271344_32_out_baoguan_material.pdf";
        File sourcefilePdf=new File(pdfFileAddr);
        
        String attFile = "E:/phpstudy_pro/WWW/php_jr/HEMSTEST/attachFiles";
        Date date = new Date();
        SimpleDateFormat yyyy = new SimpleDateFormat("yyyy");
        SimpleDateFormat mmdd = new SimpleDateFormat("MMdd");
        String fileYyyy = yyyy.format(date);
        String fileMmdd = mmdd.format(date);
        String newPath=attFile+"/"+fileYyyy + "/" + fileMmdd;
        File newFile=new File(newPath);
        if(!newFile.exists()){
            newFile.mkdirs();
        }
        
        //文件重新命名
        String relativeFullPath = (FileUtil.generateFilename(sourcefilePdf.getName()));
        System.out.println("=====relativeFullPath=>"+relativeFullPath);
        String[] arrStr=relativeFullPath.split("/");
        
        InputStream inStream = new FileInputStream(sourcefilePdf);
        OutputStream outStream=new FileOutputStream(new File(newPath,arrStr[2]));
        byte[] bytes=new byte[1024];
        int length;
        while ((length = inStream.read(bytes)) >= 0) {
            outStream.write(bytes, 0, length);
        }
        outStream.close();
        inStream.close();

public static String generateFilename(String originalFilename) {
        Date date = new Date();
        SimpleDateFormat yyyy = new SimpleDateFormat("yyyy");
        SimpleDateFormat mmdd = new SimpleDateFormat("MMdd");
        String fileYyyy = yyyy.format(date);
        String fileMmdd = mmdd.format(date);

        String fileExt = "";
        int lastIndex = originalFilename.lastIndexOf('.');

        if (lastIndex != -1) {
            fileExt = originalFilename.substring(lastIndex);
        }
        SnowFlake idWorker = new SnowFlake(0, 0);
        long id = idWorker.nextId();
        String filename = fileYyyy + "/" + fileMmdd + "/" + id + fileExt;
        return filename;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值