springboot将vo生成文件到目录

依赖

org.springframework spring-mock 2.0.8 com.alibaba fastjson 1.2.62

service实现

public RestResponseBody<EnginePublishUnpackResVo> unpack(EnginePublishUnpackVo vo) {
		//生成文件名
		String name = "Local" + "_" + aiEnginePublish1.getEngineVersion() + "_" + (int) ((Math.random() * 9 + 1) * 10000) + ".json";
		//存放到项目目录下
        File file = new File("src\\main\\resources\\" + name);
        try {
            Writer writer = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");
            //将vo转成String字符串
            String userData = JSON.toJSONString(resVo);
            writer.write(userData);
            //清除缓存
            writer.flush();
            writer.close();
            FileInputStream input = new FileInputStream(file);
            MultipartFile multipartFile = new MockMultipartFile("file", file.getName() + ".json", "multipart/form-data", IOUtils.toByteArray(input));
            //文件上传
            BosUploadResponseDTO dto = msFileUploadFeign.bosFileUpload(name, "xxx", multipartFile).getData();
            input.close();
        } catch (Exception e) {
            log.error("upload file error : {}", String.valueOf(e));
        }
        //删除文件
        boolean del = file.delete();
        log.info("file delete: {}", del);

        return RestResponseBody.success(resVo);
    }
posted @ 2022-06-21 20:24  日报初级开发工程师  阅读(5)  评论(0)    收藏  举报  来源