package ddth.dasp.framework.resource; import java.io.IOException; import java.io.InputStream; import org.apache.commons.io.IOUtils; /** * An abstract implementation of {@link IResourceLoader}. * * @author NBThanh <btnguyen2k@gmail.com> */ public abstract class AbstractResourceLoader implements IResourceLoader { /** * {@inheritDoc} */ @Override public byte[] loadResourceAsBinary(String path) throws IOException { if (!resourceExists(path)) { return null; } InputStream is = loadResource(path); try { return IOUtils.toByteArray(is); } finally { IOUtils.closeQuietly(is); } } /** * {@inheritDoc} */ @Override public String loadResourceAsString(String path) throws IOException { if (!resourceExists(path)) { return null; } byte[] data = loadResourceAsBinary(path); return new String(data); } /** * {@inheritDoc} */ @Override public String loadResourceAsString(String path, String encoding) throws IOException { if (!resourceExists(path)) { return null; } byte[] data = loadResourceAsBinary(path); return IOUtils.toString(data, encoding); } }