package net.minecraftforkage; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.nio.charset.Charset; import com.google.common.reflect.TypeToken; import com.google.gson.Gson; public class PackerDataUtils { private PackerDataUtils() {} public static <T> T read(String path, TypeToken<T> type) { try { InputStream stream = PackerDataUtils.class.getResourceAsStream("/"+path); if(stream != null) { InputStreamReader in = new InputStreamReader(stream, Charset.forName("UTF-8")); try { return new Gson().<T>fromJson(in, type.getType()); } finally { in.close(); } } else { throw new IOException("Path not found: "+path); } } catch(IOException e) { throw new RuntimeException("Error reading "+path, e); } } }