--- /dev/null
+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