package net.obnoxint.util.nbt;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
public final class NBTUtil {
public static CompoundTag readFromFile(final File file, final boolean compressed) throws IOException {
DataInputStream in;
if (compressed) {
in = new DataInputStream(new BufferedInputStream(new GZIPInputStream(new FileInputStream(file))));
} else {
in = new DataInputStream(new BufferedInputStream(new FileInputStream(file)));
}
final CompoundTag tag = (CompoundTag) NBTTag.readTag(in);
in.close();
return tag;
}
public static void writeToFile(final CompoundTag tag, final File file, final boolean compress) throws IOException {
DataOutputStream out;
if (compress) {
out = new DataOutputStream(new BufferedOutputStream(new GZIPOutputStream(new FileOutputStream(file))));
} else {
out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(file)));
}
NBTTag.writeTag(tag, out);
out.flush();
out.close();
}
}