]> gerrit.simantics Code Review - simantics/platform.git/blob - 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
1 package org.simantics.scl.runtime.procedure;\r
2 \r
3 import java.io.BufferedWriter;\r
4 import java.io.IOException;\r
5 import java.nio.charset.Charset;\r
6 import java.nio.charset.MalformedInputException;\r
7 import java.nio.file.Files;\r
8 import java.nio.file.Paths;\r
9 import java.nio.file.StandardOpenOption;\r
10 import java.util.List;\r
11 \r
12 public class StringIO {\r
13     public static final Charset UTF8 = Charset.forName("UTF-8"); \r
14     \r
15     public static List<String> readLines(String fileName) throws IOException {\r
16         try {\r
17             return Files.readAllLines(Paths.get(fileName), UTF8);\r
18         } catch(MalformedInputException e) {\r
19             throw new RuntimeException("Encoding of the file '" + fileName + "' does not conform to UTF-8 (without BOM).");\r
20         }\r
21     }\r
22     \r
23     public static List<String> readLinesWithCharset(String charset, String fileName) throws IOException {\r
24         try {\r
25             return Files.readAllLines(Paths.get(fileName), Charset.forName(charset));\r
26         } catch(MalformedInputException e) {\r
27             throw new RuntimeException("Encoding of the file '" + fileName + "' does not conform to " + charset + ".");\r
28         }\r
29     }\r
30     \r
31     public static void writeLines(String fileName, List<String> lines) throws IOException {\r
32         BufferedWriter writer = Files.newBufferedWriter(Paths.get(fileName), UTF8);\r
33         for(String line : lines) {\r
34             writer.write(line);\r
35             writer.write("\n");\r
36         }\r
37         writer.close();\r
38     }\r
39     \r
40     public static void appendLine(String fileName, String line) throws IOException {\r
41         BufferedWriter writer = Files.newBufferedWriter(Paths.get(fileName), UTF8,\r
42                 StandardOpenOption.CREATE, StandardOpenOption.APPEND);\r
43         writer.write(line);\r
44         writer.write("\n");\r
45         writer.close();\r
46     }\r
47 }\r