package jef.tools.resource;
import java.io.BufferedReader;
import java.io.InputStream;
import java.net.URL;
import java.util.List;
public interface ResourceLoader {
URL getResource(String name);
/**
* 将资源读取为流,注意使用后要关闭
* @param name
* @return
*/
InputStream getResourceAsStream(String name);
/**
* 将资源读取为字符文本,注意使用后要关闭
* @param name
* @param charset 编码,可以设置为null,会自动检测编码
* @return
*/
BufferedReader getResourceAsReader(String name,String charset);
/**
* 得到所有符合条件的资源
* @param name
* @return
*/
List<URL> getResources(String name);
/**
* 以JEF封裝的resource格式返回。
* 资源一般用URL来描述,包含了网络资源、本地资源、压缩包中的资源。
*
* Resource接口封裝了不同協議的资源的差异。
* 并且包含了常用的资源操作接口。
*
* 最常见对资源的操作无非是读取,解析等等。
*
* 也不排除某些特别的实现,可以将上述特殊位置的以內定的協議映像成本地文件,從而可以提供File格式的资源。
* 但是file格式的资源如果允许修改,那么这类实现将较难处理远程资源和本地修改后资源的冲突问题。
* @param name
* @return
*/
Resource getResourceEx(String name);
/**
* 得到封装后的资源对象
* @param name
* @return
*/
List<Resource> getgetResourcesEx(String name);
}