From 50a0e3ccdddf2a19e49c7a453ecd974888ed1ca1 Mon Sep 17 00:00:00 2001 From: Rsl1122 Date: Sat, 19 Oct 2019 13:18:15 +0300 Subject: [PATCH] Changed export open options FlatIcon_circle.png is truncated to 0 bytes on second write. Added WRITE Open option to the FileOutputStream Affected issues: - Possibly fixed #1194 --- .../djrapitops/plan/delivery/export/FileExporter.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Plan/common/src/main/java/com/djrapitops/plan/delivery/export/FileExporter.java b/Plan/common/src/main/java/com/djrapitops/plan/delivery/export/FileExporter.java index 2ca58d048..8c0c8b0ae 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/delivery/export/FileExporter.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/delivery/export/FileExporter.java @@ -26,6 +26,7 @@ import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.nio.file.Files; +import java.nio.file.OpenOption; import java.nio.file.Path; import java.nio.file.StandardOpenOption; import java.util.Arrays; @@ -38,6 +39,8 @@ import java.util.List; */ abstract class FileExporter { + private static final OpenOption[] OPEN_OPTIONS = {StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.WRITE}; + private static void copy(InputStream in, OutputStream out) throws IOException { int read; byte[] bytes = new byte[1024]; @@ -49,12 +52,12 @@ abstract class FileExporter { void export(Path to, List content) throws IOException { Files.createDirectories(to.getParent()); - Files.write(to, content, StandardCharsets.UTF_8, StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.CREATE); + Files.write(to, content, StandardCharsets.UTF_8, OPEN_OPTIONS); } void export(Path to, String content) throws IOException { Files.createDirectories(to.getParent()); - Files.write(to, Arrays.asList(StringUtils.split(content, "\r\n")), StandardCharsets.UTF_8, StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.CREATE); + Files.write(to, Arrays.asList(StringUtils.split(content, "\r\n")), StandardCharsets.UTF_8, OPEN_OPTIONS); } void export(Path to, Resource resource) throws IOException { @@ -62,7 +65,7 @@ abstract class FileExporter { try ( InputStream in = resource.asInputStream(); - OutputStream out = Files.newOutputStream(to, StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.CREATE) + OutputStream out = Files.newOutputStream(to, OPEN_OPTIONS) ) { copy(in, out); }