1 package org
.asamk
.signal
.util
;
4 import java
.io
.IOException
;
5 import java
.io
.InputStream
;
6 import java
.io
.StringWriter
;
7 import java
.nio
.charset
.Charset
;
8 import java
.nio
.file
.Files
;
9 import java
.nio
.file
.Path
;
10 import java
.nio
.file
.attribute
.PosixFilePermission
;
11 import java
.nio
.file
.attribute
.PosixFilePermissions
;
12 import java
.util
.EnumSet
;
15 import static java
.nio
.file
.attribute
.PosixFilePermission
.*;
17 public class IOUtils
{
22 public static File
createTempFile() throws IOException
{
23 return File
.createTempFile("signal_tmp_", ".tmp");
26 public static String
readAll(InputStream
in, Charset charset
) throws IOException
{
27 StringWriter output
= new StringWriter();
28 byte[] buffer
= new byte[4096];
30 while (-1 != (n
= in.read(buffer
))) {
31 output
.write(new String(buffer
, 0, n
, charset
));
33 return output
.toString();
36 public static void createPrivateDirectories(String path
) throws IOException
{
37 final Path file
= new File(path
).toPath();
39 Set
<PosixFilePermission
> perms
= EnumSet
.of(OWNER_READ
, OWNER_WRITE
, OWNER_EXECUTE
);
40 Files
.createDirectories(file
, PosixFilePermissions
.asFileAttribute(perms
));
41 } catch (UnsupportedOperationException e
) {
42 Files
.createDirectories(file
);
46 public static void createPrivateFile(String path
) throws IOException
{
47 final Path file
= new File(path
).toPath();
49 Set
<PosixFilePermission
> perms
= EnumSet
.of(OWNER_READ
, OWNER_WRITE
);
50 Files
.createFile(file
, PosixFilePermissions
.asFileAttribute(perms
));
51 } catch (UnsupportedOperationException e
) {
52 Files
.createFile(file
);