接收方与发送方代码
@RestController @RequestMapping("/optimistic") public class OptimisticController { @Resource private RestTemplate restTemplate; //接收方 @PostMapping("receive") public String receive(@RequestParam(value = "file",required = false) MultipartFile uploadFile) { String originalFilename = uploadFile.getOriginalFilename(); return originalFilename; } //发送方 @PostMapping("send") public String send(@RequestParam(value = "file",required = false) MultipartFile uploadFile) throws IOException { //设置content-type为 multipart/form-data HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.MULTIPART_FORM_DATA); //获取流文件 InputStream inputStream = uploadFile.getInputStream(); InputStreamResource fileResource = new InputStreamResource(inputStream) { //重写设置文件大小与名称 @Override public long contentLength() { return uploadFile.getSize(); } @Override public String getFilename() { return uploadFile.getOriginalFilename(); } }; MultiValueMap<String, Object> param = new LinkedMultiValueMap<>(); param.add("file",fileResource); HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(param, headers); String body = restTemplate.exchange("http://127.0.0.1:8088/optimistic/receive", HttpMethod.POST, requestEntity, String.class).getBody(); return body; } }
请求发送方接口成功返回
读取zip压缩包中的文件方法
创建main函数测试
public static void main(String[] args) throws IOException { BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream("D://jobhandler/zip/test.zip")); ZipInputStream zis = new ZipInputStream(bufferedInputStream); ZipEntry zipEntry; BufferedReader br = new BufferedReader( new InputStreamReader(zis)); while ((zipEntry = zis.getNextEntry()) != null) { // 解压压缩文件的其中具体的一个zipEntry对象 String name = zipEntry.getName(); try { StringBuffer sb = new StringBuffer(); String line; while ((line = br.readLine()) != null) { sb.append(line); sb.append("\r\n"); } System.out.println(sb); } catch (Exception e) { e.printStackTrace(); } zis.closeEntry(); } zis.close(); br.close(); }
成功读取zip中的json文件