blob: 4a7f3faa7ecdfccf4cacc83bf80136b9ab805747 [file] [log] [blame] [raw]
package net.querz.nbt;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PushbackInputStream;
import java.util.zip.GZIPInputStream;
public class NBTFileReader {
private File file;
public NBTFileReader(File file) {
this.file = file;
}
public NBTFileReader(String file) {
this(new File(file));
}
public Tag read() {
try (
FileInputStream fileIn = new FileInputStream(file);
NBTInputStream nbtIn = new NBTInputStream(decompress(fileIn));
) {
return nbtIn.readTag();
} catch (IOException ex) {
ex.printStackTrace();
return null;
}
}
private InputStream decompress(InputStream is) throws IOException {
PushbackInputStream pbis = new PushbackInputStream(is, 2);
byte[] signature = new byte[2];
pbis.read(signature);
pbis.unread(signature);
if (signature[0] == (byte) 0x1F && signature[1] == (byte) 0x8B)
return new GZIPInputStream(pbis);
return pbis;
}
}