+++ /dev/null
-package org.asamk.signal.manager.util;
-
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.attribute.PosixFilePermission;
-import java.nio.file.attribute.PosixFilePermissions;
-import java.util.EnumSet;
-import java.util.Set;
-
-import static java.nio.file.attribute.PosixFilePermission.OWNER_EXECUTE;
-import static java.nio.file.attribute.PosixFilePermission.OWNER_READ;
-import static java.nio.file.attribute.PosixFilePermission.OWNER_WRITE;
-
-public class IOUtils {
-
- public static File createTempFile() throws IOException {
- final File tempFile = File.createTempFile("signal-cli_tmp_", ".tmp");
- tempFile.deleteOnExit();
- return tempFile;
- }
-
- public static byte[] readFully(InputStream in) throws IOException {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- IOUtils.copyStream(in, baos);
- return baos.toByteArray();
- }
-
- public static void createPrivateDirectories(File file) throws IOException {
- if (file.exists()) {
- return;
- }
-
- final Path path = file.toPath();
- try {
- Set<PosixFilePermission> perms = EnumSet.of(OWNER_READ, OWNER_WRITE, OWNER_EXECUTE);
- Files.createDirectories(path, PosixFilePermissions.asFileAttribute(perms));
- } catch (UnsupportedOperationException e) {
- Files.createDirectories(path);
- }
- }
-
- public static void createPrivateFile(File path) throws IOException {
- final Path file = path.toPath();
- try {
- Set<PosixFilePermission> perms = EnumSet.of(OWNER_READ, OWNER_WRITE);
- Files.createFile(file, PosixFilePermissions.asFileAttribute(perms));
- } catch (UnsupportedOperationException e) {
- Files.createFile(file);
- }
- }
-
- public static void copyFileToStream(File inputFile, OutputStream output) throws IOException {
- try (InputStream inputStream = new FileInputStream(inputFile)) {
- copyStream(inputStream, output);
- }
- }
-
- public static void copyStream(InputStream input, OutputStream output) throws IOException {
- copyStream(input, output, 4096);
- }
-
- public static void copyStream(InputStream input, OutputStream output, int bufferSize) throws IOException {
- byte[] buffer = new byte[bufferSize];
- int read;
-
- while ((read = input.read(buffer)) != -1) {
- output.write(buffer, 0, read);
- }
- }
-}