Skip to content

Commit 747afa6

Browse files
committed
Add utility methods that write to a file
1 parent 36dd9ce commit 747afa6

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

src/main/java/net/techcable/srglib/format/MappingsFormat.java

+23
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,22 @@
11
package net.techcable.srglib.format;
22

3+
import java.io.BufferedWriter;
34
import java.io.CharArrayReader;
45
import java.io.CharArrayWriter;
6+
import java.io.File;
7+
import java.io.FileInputStream;
8+
import java.io.FileOutputStream;
59
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;
615
import java.util.Arrays;
716
import java.util.Iterator;
817
import java.util.List;
918

19+
import com.google.common.base.Charsets;
1020
import com.google.common.collect.ImmutableList;
1121
import com.google.common.collect.ImmutableMap;
1222
import com.google.common.io.CharStreams;
@@ -37,6 +47,13 @@ default Mappings parse(Readable readable) throws IOException {
3747
return lineProcessor.getResult();
3848
}
3949

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+
4057
default Mappings parseLines(String... lines) {
4158
return parseLines(Arrays.asList(lines));
4259
}
@@ -55,6 +72,12 @@ default Mappings parseLines(Iterator<String> lines) {
5572

5673
void write(Mappings mappings, Appendable output) throws IOException;
5774

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+
5881
default List<String> toLines(Mappings mappings) {
5982
CharArrayWriter result = new CharArrayWriter();
6083
return sneakyThrowing(() -> {

0 commit comments

Comments
 (0)