]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/util/IOUtils.java
Update codestyle
[signal-cli] / src / main / java / org / asamk / signal / util / IOUtils.java
index e1464b1c603997318cc21de696ad096ca64f50af..1163d07949b661a393039c7d10e540d1e27375c4 100644 (file)
@@ -1,8 +1,13 @@
 package org.asamk.signal.util;
 
+import org.whispersystems.signalservice.internal.util.Util;
+
+import java.io.ByteArrayOutputStream;
 import java.io.File;
+import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.OutputStream;
 import java.io.StringWriter;
 import java.nio.charset.Charset;
 import java.nio.file.Files;
@@ -12,7 +17,9 @@ import java.nio.file.attribute.PosixFilePermissions;
 import java.util.EnumSet;
 import java.util.Set;
 
-import static java.nio.file.attribute.PosixFilePermission.*;
+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 {
 
@@ -33,6 +40,12 @@ public class IOUtils {
         return output.toString();
     }
 
+    public static byte[] readFully(InputStream in) throws IOException {
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        Util.copy(in, baos);
+        return baos.toByteArray();
+    }
+
     public static void createPrivateDirectories(String directoryPath) throws IOException {
         final File file = new File(directoryPath);
         if (file.exists()) {
@@ -66,4 +79,19 @@ public class IOUtils {
 
         return System.getProperty("user.home") + "/.local/share";
     }
+
+    public static void copyStreamToFile(InputStream input, File outputFile) throws IOException {
+        copyStreamToFile(input, outputFile, 8192);
+    }
+
+    public static void copyStreamToFile(InputStream input, File outputFile, int bufferSize) throws IOException {
+        try (OutputStream output = new FileOutputStream(outputFile)) {
+            byte[] buffer = new byte[bufferSize];
+            int read;
+
+            while ((read = input.read(buffer)) != -1) {
+                output.write(buffer, 0, read);
+            }
+        }
+    }
 }