1
1
package net .techcable .srglib .format ;
2
2
3
+ import java .io .BufferedWriter ;
3
4
import java .io .CharArrayReader ;
4
5
import java .io .CharArrayWriter ;
6
+ import java .io .File ;
7
+ import java .io .FileInputStream ;
8
+ import java .io .FileOutputStream ;
5
9
import java .io .IOException ;
10
+ import java .io .InputStreamReader ;
11
+ import java .io .OutputStreamWriter ;
12
+ import java .io .Reader ;
13
+ import java .io .Writer ;
14
+ import java .nio .file .Files ;
6
15
import java .util .Arrays ;
7
16
import java .util .Iterator ;
8
17
import java .util .List ;
9
18
19
+ import com .google .common .base .Charsets ;
10
20
import com .google .common .collect .ImmutableList ;
11
21
import com .google .common .collect .ImmutableMap ;
12
22
import com .google .common .io .CharStreams ;
@@ -37,6 +47,13 @@ default Mappings parse(Readable readable) throws IOException {
37
47
return lineProcessor .getResult ();
38
48
}
39
49
50
+ default Mappings parseFile (File file ) throws IOException {
51
+ try (Reader in = new InputStreamReader (new FileInputStream (file ), Charsets .UTF_8 )) {
52
+ // Don't worry, parse(Readable) buffers internally
53
+ return parse (in );
54
+ }
55
+ }
56
+
40
57
default Mappings parseLines (String ... lines ) {
41
58
return parseLines (Arrays .asList (lines ));
42
59
}
@@ -55,6 +72,12 @@ default Mappings parseLines(Iterator<String> lines) {
55
72
56
73
void write (Mappings mappings , Appendable output ) throws IOException ;
57
74
75
+ default void writeToFile (Mappings mappings , File file ) throws IOException {
76
+ try (Writer out = new BufferedWriter (new OutputStreamWriter (new FileOutputStream (file ), Charsets .UTF_8 ))) {
77
+ write (mappings , out );
78
+ }
79
+ }
80
+
58
81
default List <String > toLines (Mappings mappings ) {
59
82
CharArrayWriter result = new CharArrayWriter ();
60
83
return sneakyThrowing (() -> {
0 commit comments