NOTE:ByteArrayResource can be used repeatedly, because isOpen() always returns false.
2. InputStreamResource:
1 2 3 4 5 6 7 8 9
@Test publicvoidtestInputStreamResource(){ ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream("Hello World!".getBytes()); Resource resource = new InputStreamResource(byteArrayInputStream); if (resource.exists()) { dumpStream(resource); } Assert.assertEquals(true, resource.isOpen()); }
NOTE:InputStreamResource can be used only one time, because isOpen() always returns true.
3. FileSystemResource:
1 2 3 4 5 6 7 8 9
@Test publicvoidtestFileResource(){ File file = new File("d:/test.txt"); Resource resource = new FileSystemResource(file); if (resource.exists()) { dumpStream(resource); } Assert.assertEquals(false, resource.isOpen()); }
NOTE:FileSystemResource can be used repeatedly, because isOpen() always returns false.
4. ClassPathResource:
ClassPathResource replaces Class and ClassLoader to give a uniform implement. The resource can be used repeatedly, because isOpen() always returns false.
Here are three constructors in ClassPathResource:
public ClassPathResource(String path): using default ClassLoader to load resource.
public ClassPathResource(String path, ClassLoader classLoader): using specified ClassLoader to load path resource.
_ public ClassPathResource(String path, Class<?> clazz)_: using Class path to load resource.
For example, if the Class path is “cn.javass.spring.ResourceTest”, the path is “cn/javass/spring/ResourceTest”.
public ClassPathResource(String path):
1 2 3 4 5 6 7 8 9
@Test publicvoidtestClasspathResourceBydefaultClassLoader()throws IOException { Resource resource = new ClassPathResource("cn/javass/spring/chapter4/test.properties"); if (resource.exists()) { dumpStream(resource); } System.out.println("path:" + resource.getFile().getAbsolutePath()); Assert.assertEquals(false, resource.isOpen()); }
public ClassPathResource(String path, ClassLoader classLoader):