ByteArrayResource代表byte[]数组资源,对于getInputStream将返回一个ByteArrayInputStream.
@Test
public void testByteArrayResource(){
//1、定义资源
Resource resource = new ByteArrayResource("Hello World!".getBytes());
//2、验证资源是否存在
if(resource.exists()){
//3、访问资源
dumpStream(resource);
}
}
这个测试方法定义了基本步骤:1、定义资源。2、验证资源是否存在。3、访问资源。
看下dumpStream的实现
private void dumpStream(Resource resource){
InputStream is = null;
try{
//1、获取文件资源
is = resource.getInputStream();
//2、读取资源
byte [] descBytes = new byte [is.available()];//java.io.InputStream.available返回此输入流方法的下一个调用方可以不受阻塞地从此输入流读取(或跳过)的字节数
is.read(descBytes);
System.out.println(new String(descBytes));
}catch (Exception e) {
e.printStackTrace();
}finally
{
try{
//3、关闭资源
is.close();
}catch (Exception e) {
}
}
}
dumpStream方法定义了访问流的三步曲:1、获取资源。2、读取资源 3、关闭资源
ByteArrayResource可多次读取数组资源,即isOpen()永远返回false.
注意: 这里的inputStream是java.io.InputStream。ByteArrayResource是org.springframework.core.io.ByteArrayResource。Resource是org.springframework.core.io.Resource