static void saveStreamToGZFile(InputStream in, File file) ctex { File parentFile = file.getParentFile(); if (parentFile != null) parentFile.mkdirs(); String tempFileName = file.getPath() + "_temp"; File tempFile = new File(tempFileName); if (tempFile.exists()) try { S saveName = tempFileName + ".saved." + now(); copyFile(tempFile, new File(saveName)); } catch (Throwable e) { printStackTrace(e); } FileOutputStream fileOutputStream = newFileOutputStream(tempFile.getPath()); GZIPOutputStream gos = new GZIPOutputStream(fileOutputStream); copyStreamAndCloseAll(in, gos); if (file.exists() && !file.delete()) fail("Can't delete " + file.getPath()); if (!tempFile.renameTo(file)) fail("Can't rename " + tempFile + " to " + file); }