]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.runtime/src/org/simantics/scl/runtime/procedure/StringIO.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.scl.runtime / src / org / simantics / scl / runtime / procedure / StringIO.java
diff --git a/bundles/org.simantics.scl.runtime/src/org/simantics/scl/runtime/procedure/StringIO.java b/bundles/org.simantics.scl.runtime/src/org/simantics/scl/runtime/procedure/StringIO.java
new file mode 100644 (file)
index 0000000..8cf8cce
--- /dev/null
@@ -0,0 +1,47 @@
+package org.simantics.scl.runtime.procedure;\r
+\r
+import java.io.BufferedWriter;\r
+import java.io.IOException;\r
+import java.nio.charset.Charset;\r
+import java.nio.charset.MalformedInputException;\r
+import java.nio.file.Files;\r
+import java.nio.file.Paths;\r
+import java.nio.file.StandardOpenOption;\r
+import java.util.List;\r
+\r
+public class StringIO {\r
+    public static final Charset UTF8 = Charset.forName("UTF-8"); \r
+    \r
+    public static List<String> readLines(String fileName) throws IOException {\r
+        try {\r
+            return Files.readAllLines(Paths.get(fileName), UTF8);\r
+        } catch(MalformedInputException e) {\r
+            throw new RuntimeException("Encoding of the file '" + fileName + "' does not conform to UTF-8 (without BOM).");\r
+        }\r
+    }\r
+    \r
+    public static List<String> readLinesWithCharset(String charset, String fileName) throws IOException {\r
+        try {\r
+            return Files.readAllLines(Paths.get(fileName), Charset.forName(charset));\r
+        } catch(MalformedInputException e) {\r
+            throw new RuntimeException("Encoding of the file '" + fileName + "' does not conform to " + charset + ".");\r
+        }\r
+    }\r
+    \r
+    public static void writeLines(String fileName, List<String> lines) throws IOException {\r
+        BufferedWriter writer = Files.newBufferedWriter(Paths.get(fileName), UTF8);\r
+        for(String line : lines) {\r
+            writer.write(line);\r
+            writer.write("\n");\r
+        }\r
+        writer.close();\r
+    }\r
+    \r
+    public static void appendLine(String fileName, String line) throws IOException {\r
+        BufferedWriter writer = Files.newBufferedWriter(Paths.get(fileName), UTF8,\r
+                StandardOpenOption.CREATE, StandardOpenOption.APPEND);\r
+        writer.write(line);\r
+        writer.write("\n");\r
+        writer.close();\r
+    }\r
+}\r