Set OutputStreamWriter to UTF-8. Document UTF-8 requirements.

This commit is contained in:
moandji.ezana 2015-07-29 13:45:24 +02:00
parent b21391add7
commit 039b487115

View file

@ -5,6 +5,7 @@ import static com.moandjiezana.toml.ObjectValueWriter.OBJECT_VALUE_WRITER;
import static com.moandjiezana.toml.ValueWriters.WRITERS; import static com.moandjiezana.toml.ValueWriters.WRITERS;
import java.io.File; import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter; import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
@ -112,38 +113,38 @@ public class TomlWriter {
} }
/** /**
* Write an Object in TOML to a {@link OutputStream}. * Write an Object in TOML to a {@link File}. Output is encoded as UTF-8.
*
* @param from the object to be written
* @param target the OutputStream to which the TOML will be written. The stream is not closed after being written to.
* @throws IOException if target.write() fails
*/
public void write(Object from, OutputStream target) throws IOException {
OutputStreamWriter writer = new OutputStreamWriter(target);
write(from, writer);
writer.flush();
}
/**
* Write an Object in TOML to a {@link File}.
* *
* @param from the object to be written * @param from the object to be written
* @param target the File to which the TOML will be written * @param target the File to which the TOML will be written
* @throws IOException if any file operations fail * @throws IOException if any file operations fail
*/ */
public void write(Object from, File target) throws IOException { public void write(Object from, File target) throws IOException {
FileWriter writer = new FileWriter(target); OutputStream outputStream = new FileOutputStream(target);
try { try {
write(from, writer); write(from, outputStream);
} finally { } finally {
writer.close(); outputStream.close();
} }
} }
/** /**
* Write an Object in TOML to a {@link Writer}. * Write an Object in TOML to a {@link OutputStream}. Output is encoded as UTF-8.
* *
* @param from the object to be written. Can be a Map or a custom type. * @param from the object to be written
* @param target the OutputStream to which the TOML will be written. The stream is NOT closed after being written to.
* @throws IOException if target.write() fails
*/
public void write(Object from, OutputStream target) throws IOException {
OutputStreamWriter writer = new OutputStreamWriter(target, "UTF-8");
write(from, writer);
writer.flush();
}
/**
* Write an Object in TOML to a {@link Writer}. You MUST ensure that the {@link Writer}s's encoding is set to UTF-8 for the TOML to be valid.
*
* @param from the object to be written. Can be a Map or a custom type. Must not be null.
* @param target the Writer to which TOML will be written. The Writer is not closed. * @param target the Writer to which TOML will be written. The Writer is not closed.
* @throws IOException if target.write() fails * @throws IOException if target.write() fails
* @throws IllegalArgumentException if from is of an invalid type * @throws IllegalArgumentException if from is of an invalid type