commit 8c21e0e70a3db645d532721f67e0c4c993ab7465 Author: iwakeh iwakeh@users.ourproject.org Date: Sat Feb 7 16:50:00 2015 +0000
Fix task-14780 file encoding problem that blows up files with utf characters. --- .../org/torproject/onionoo/docs/DocumentStore.java | 25 ++++++++++---------- 1 file changed, 13 insertions(+), 12 deletions(-)
diff --git a/src/main/java/org/torproject/onionoo/docs/DocumentStore.java b/src/main/java/org/torproject/onionoo/docs/DocumentStore.java index 054fe3b..974f4c1 100644 --- a/src/main/java/org/torproject/onionoo/docs/DocumentStore.java +++ b/src/main/java/org/torproject/onionoo/docs/DocumentStore.java @@ -3,13 +3,13 @@ package org.torproject.onionoo.docs;
import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; import java.io.BufferedReader; -import java.io.BufferedWriter; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; +import java.io.FileOutputStream; import java.io.FileReader; -import java.io.FileWriter; import java.io.FileNotFoundException; import java.io.IOException; import java.util.ArrayList; @@ -345,10 +345,7 @@ public class DocumentStore { documentFile.getParentFile().mkdirs(); File documentTempFile = new File( documentFile.getAbsolutePath() + ".tmp"); - BufferedWriter bw = new BufferedWriter(new FileWriter( - documentTempFile)); - bw.write(documentString); - bw.close(); + writeToFile(documentTempFile, documentString); documentFile.delete(); documentTempFile.renameTo(documentFile); this.storedFiles++; @@ -740,9 +737,7 @@ public class DocumentStore { String documentString = sb.toString(); try { summaryFile.getParentFile().mkdirs(); - BufferedWriter bw = new BufferedWriter(new FileWriter(summaryFile)); - bw.write(documentString); - bw.close(); + writeToFile(summaryFile, documentString); this.lastModifiedNodeStatuses = summaryFile.lastModified(); this.updatedNodeStatuses.clear(); this.storedFiles++; @@ -753,6 +748,14 @@ public class DocumentStore { } }
+ private static void writeToFile(File file, String content) + throws IOException { + BufferedOutputStream bos = new BufferedOutputStream( + new FileOutputStream(file)); + bos.write(content.getBytes("US-ASCII")); + bos.close(); + } + private void writeSummaryDocuments() { StringBuilder sb = new StringBuilder(); Gson gson = new Gson(); @@ -770,9 +773,7 @@ public class DocumentStore { File summaryFile = new File(this.outDir, "summary"); try { summaryFile.getParentFile().mkdirs(); - BufferedWriter bw = new BufferedWriter(new FileWriter(summaryFile)); - bw.write(documentString); - bw.close(); + writeToFile(summaryFile, documentString); this.lastModifiedSummaryDocuments = summaryFile.lastModified(); this.updatedSummaryDocuments.clear(); this.storedFiles++;
tor-commits@lists.torproject.org