2006-09-20

getResourceAsStream

getClassLoader().getResourceAsStream && .getResourceAsStream()


package jay.home.test.comm;

import static org.junit.Assert.*;

import java.io.InputStream;
import jay.home.test.dbunit.DBUnitUsage;
import org.junit.Test;

/**
* @author Jay
* @since 2006-9-20 下午12:02:15
*/
public class GetResourceAsStream
{
@Test
public void getResourceByClass()throws Exception
{
// 如果不是在同一目录下,不可访问到
InputStream stream2 = DBUnitUsage.class.getResourceAsStream("resource.file");
assertNull(stream2);
// 可以访问,需要加全限定名
InputStream stream3 = DBUnitUsage.class.getResourceAsStream("/jay/home/test/comm/resource.file");
assertNotNull(stream3);
// 可以访问,如果在同一个目录下就可以直接访问
InputStream stream4 = GetResourceAsStream.class.getResourceAsStream("resource.file");
assertNotNull(stream4);
}

@Test
public void getResourceByClassLoader() throws Exception
{
ClassLoader loader = GetResourceAsStream.class.getClassLoader();

InputStream stream1 = loader.getResourceAsStream("resource.file");
assertNull(stream1);
// 可以访问,加包名
InputStream stream2 = loader.getResourceAsStream("jay/home/test/comm/resource.file");
assertNotNull(stream2);
// 不可以访问,不需要最前的/
InputStream stream3 = loader.getResourceAsStream("/jay/home/test/comm/resource.file");
assertNull(stream3);
}
}

No comments: