package eu.europeana.cloud.util; import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.IOUtils; import java.io.*; import java.nio.file.Files; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.UUID; /** * Created by Tarek on 9/1/2016. */ public class FileUtil { private static final int BATCH_MAX_SIZE = 1240 * 4; private static final String ZIP_FORMAT_EXTENSION = ".zip"; private static final String ECLOUD_SUFFIX = "ecloud-dataset"; public static void persistStreamToFile(InputStream inputStream, String folderPath, String fileName, String extension) throws IOException { OutputStream outputStream = null; try { String filePtah = createFilePath(folderPath, fileName, extension); File file = new File(filePtah); outputStream = new FileOutputStream(file.toPath().toString()); byte[] buffer = new byte[BATCH_MAX_SIZE]; IOUtils.copyLarge(inputStream, outputStream, buffer); } finally { if (outputStream != null) outputStream.close(); inputStream.close(); } } public static String createFilePath(String folderPath, String fileName, String extension) { String filePtah = folderPath + fileName; if ("".equals(FilenameUtils.getExtension(fileName))) filePtah = filePtah + extension; return filePtah; } public static String createFolder() throws IOException { String folderName = UUID.randomUUID().toString(); return Files.createTempDirectory(folderName) + File.separator; } public static String createZipFolderPath(Date date) { String folderName = generateFolderName(date); return System.getProperty("user.dir") + "/" + folderName + ZIP_FORMAT_EXTENSION; } private static String generateFolderName(Date date) { DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss-ssss"); return ECLOUD_SUFFIX + "-" + dateFormat.format(date); } }