try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()) {
try (FileInputStream fileInputStream = new FileInputStream(ServerConfig.DB_BACKUPPATH + "\\" + path + ".sql.gz")) {
System.out.println(fileInputStream.available()); // 輸出文件解壓前的大小
try (GZIPInputStream gzipInputStream = new GZIPInputStream(fileInputStream, 1024)) {
System.out.println(gzipInputStream.available()); // 到達文件尾為0,否則為1
byte[] buf = new byte[1024];
int len, curpos = 0;
while ((len = gzipInputStream.read(buf)) != -1) {
curpos += len;
// outputStream.write(buf, 0, len);
byteArrayOutputStream.write(buf, 0, len);
System.out.println(len + " " + curpos); // curpos輸出是的解壓後的大小,
}
log.info("解壓完成");
}
}
byte[] bytes = byteArrayOutputStream.toByteArray();
outputStream.write(bytes, 0, bytes.length);
}
}
log.info("執行完成");