(Minor code cleanup)
diff --git a/freemarker-docgen-core/src/main/java/org/freemarker/docgen/core/FileUtil.java b/freemarker-docgen-core/src/main/java/org/freemarker/docgen/core/FileUtil.java
index 3ca637b..9cf1fec 100644
--- a/freemarker-docgen-core/src/main/java/org/freemarker/docgen/core/FileUtil.java
+++ b/freemarker-docgen-core/src/main/java/org/freemarker/docgen/core/FileUtil.java
@@ -26,7 +26,10 @@
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.Reader;
+import java.io.Writer;
import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import java.util.Collection;
import java.util.Collections;
import java.util.regex.Pattern;
@@ -346,5 +349,8 @@
return path.length() > 0 && path.charAt(path.length() - 1) == File.separatorChar
? path : path + File.separatorChar;
}
-
+
+ public static Writer newFileWriter(File outputFile) throws IOException {
+ return Files.newBufferedWriter(outputFile.toPath(), StandardCharsets.UTF_8);
+ }
}
diff --git a/freemarker-docgen-core/src/main/java/org/freemarker/docgen/core/Transform.java b/freemarker-docgen-core/src/main/java/org/freemarker/docgen/core/Transform.java
index d9d3a25..204e492 100644
--- a/freemarker-docgen-core/src/main/java/org/freemarker/docgen/core/Transform.java
+++ b/freemarker-docgen-core/src/main/java/org/freemarker/docgen/core/Transform.java
@@ -21,12 +21,9 @@
import static org.freemarker.docgen.core.DocBook5Constants.*;
import java.io.BufferedReader;
-import java.io.BufferedWriter;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.io.OutputStreamWriter;
import java.io.StringReader;
import java.io.Writer;
import java.nio.charset.Charset;
@@ -1113,14 +1110,10 @@
{
logger.info("Generating ToC JSON...");
Template template = fmConfig.getTemplate(FILE_TOC_JSON_TEMPLATE);
- try (Writer wr = new BufferedWriter(
- new OutputStreamWriter(
- new FileOutputStream(
- new File(destDir, FILE_TOC_JSON_OUTPUT)),
- UTF_8))) {
+ try (Writer wr = FileUtil.newFileWriter(new File(destDir, FILE_TOC_JSON_OUTPUT))) {
try {
SimpleHash dataModel = new SimpleHash(fmConfig.getObjectWrapper());
- dataModel.put(VAR_JSON_TOC_ROOT, tocNodes.get(0));
+ dataModel.put(VAR_JSON_TOC_ROOT, tocNodes.get(0));
template.process(dataModel, wr, null, NodeModel.wrap(doc));
} catch (TemplateException e) {
throw new BugException("Failed to generate ToC JSON "
@@ -1133,14 +1126,10 @@
{
logger.info("Generating Sitemap XML...");
Template template = fmConfig.getTemplate(FILE_SITEMAP_XML_TEMPLATE);
- try (Writer wr = new BufferedWriter(
- new OutputStreamWriter(
- new FileOutputStream(
- new File(destDir, FILE_SITEMAP_XML_OUTPUT)),
- UTF_8))) {
+ try (Writer wr = FileUtil.newFileWriter(new File(destDir, FILE_SITEMAP_XML_OUTPUT))) {
try {
SimpleHash dataModel = new SimpleHash(fmConfig.getObjectWrapper());
- dataModel.put(VAR_JSON_TOC_ROOT, tocNodes.get(0));
+ dataModel.put(VAR_JSON_TOC_ROOT, tocNodes.get(0));
template.process(dataModel, wr, null, NodeModel.wrap(doc));
} catch (TemplateException e) {
throw new BugException("Failed to generate Sitemap XML"
@@ -1214,11 +1203,7 @@
logger.info("Generating Eclipse ToC...");
Template template = fmConfig.getTemplate(FILE_ECLIPSE_TOC_TEMPLATE);
- try (Writer wr = new BufferedWriter(
- new OutputStreamWriter(
- new FileOutputStream(
- new File(destDir, FILE_ECLIPSE_TOC_OUTPUT)),
- UTF_8))) {
+ try (Writer wr = FileUtil.newFileWriter(new File(destDir, FILE_ECLIPSE_TOC_OUTPUT))) {
try {
SimpleHash dataModel = new SimpleHash(fmConfig.getObjectWrapper());
if (eclipseLinkTo != null) {
@@ -2641,16 +2626,11 @@
throws TemplateException, IOException {
Template template = fmConfig.getTemplate("page.ftlh");
File outputFile = new File(destDir, fileName);
- FileOutputStream fos = new FileOutputStream(outputFile);
- OutputStreamWriter osw = new OutputStreamWriter(fos, UTF_8);
- Writer writer = new BufferedWriter(osw, 2048);
- try {
+ try (Writer writer = FileUtil.newFileWriter(outputFile)) {
template.process(
dataModel,
writer, null,
NodeModel.wrap(currentFileTOCNode.getElement()));
- } finally {
- writer.close();
}
}