public static void main(String[] args)throws IOException {
Map map=new HashMap<>();
map.put("application.properties",getBytes(new File("F:\\shop-mail2\\shop-apigateway\\src\\main\\resources\\application.properties")));
map.put("application.yml",getBytes(new File("F:\\shop-mail2\\shop-apigateway\\src\\main\\resources\\application.yml")));
System.out.println(listBytesToZip(map).length);
String filepath="F:\\test\\";
String filename="test.zip";
fileToBytes(listBytesToZip(map),filepath,filename);
}
protected static byte[]listBytesToZip(Map mapReporte)throws IOException {
ByteArrayOutputStream baos =new ByteArrayOutputStream();
ZipOutputStream zos =new ZipOutputStream(baos);
for (Map.Entry reporte : mapReporte.entrySet()) {
ZipEntry entry =new ZipEntry(reporte.getKey());
entry.setSize(reporte.getValue().length);
zos.putNextEntry(entry);
zos.write(reporte.getValue());
}
zos.closeEntry();
zos.close();
return baos.toByteArray();
}
private static byte[]getBytes(File file)throws IOException {
FileInputStream fis=new FileInputStream(file);
ByteArrayOutputStream bao=new ByteArrayOutputStream();
byte[] b=new byte[1024];
int len=-1;
while ((len=fis.read(b))!=-1){
bao.write(b,0,len);
}
return bao.toByteArray();
}
public static void fileToBytes(byte[] bytes, String filePath, String fileName) {
BufferedOutputStream bos =null;
FileOutputStream fos =null;
File file =null;
try {
file =new File(filePath + fileName);
if (!file.getParentFile().exists()){
//文件夹不存在 生成
file.getParentFile().mkdirs();
}
fos =new FileOutputStream(file);
bos =new BufferedOutputStream(fos);
bos.write(bytes);
}catch (Exception e) {
e.printStackTrace();
}finally {
if (bos !=null) {
try {
bos.close();
}catch (IOException e) {
e.printStackTrace();
}
}
if (fos !=null) {
try {
fos.close();
}catch (IOException e) {
e.printStackTrace();
}
}
}
}