8.3.1 Resource实现类------InputStreamResource:访问输入流资源的实现类。ByteArrayResource:访问字节数组资源的实现类。
5. 访问字节数组资源
⊙ InputStreamResource
Spring 提供了InputStreamResource 来访问二进制输入流资源,InputStreamResource是针对输入流的Resource实现,只有当没有适合的Resource实现时,才考虑使用该InputStreamResource。在通常情况下优先考虑使用ByteArrayResource,或者基于文件的Resource实现。
与其他Resource实现不同的是,InputStreamResource是一个总是被打开的Resource,所以isOpen()方法总是返回true。因此如果需要多次读取某个流,就不要使用InputStreamResource,创建InputStreamResource实例时应提供一个InputStream参数。
在一些个别的情况下,InputStreamResource是有用的。例如从数据库中读取得到一个Blob对象,程序需要获取该Blob对象的内容,就可先通过Blob的getBinaryStream()方法获取二进制输入流,再将该二进制输入流包装成Resource对象,然后就可通过该Resource对象来访问该Blob对象所包含的资源了。
⊙ ByteArrayResource
Spring 提供的ByteArrayResource用于直接访问字节数组资源,字节数组是一个常见的信息传输方式;网络Socket之间的信息交换,或者线程之间的信息交换等,字节数组都被作为信息载体。ByteArrayResource可将字节数组包装成Reosurce使用。
String context = "nihao"; byte[] fileBytes = context.getBytes(); ByteArrayResource bar = new ByteArrayResource(fileBytes);
啦啦啦