首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

spring工具种

2012-09-10 
spring工具类关键字: spring 的优秀工具类盘点?对于位于远程服务器(Web 服务器或 FTP 服务器)的文件资源,

spring工具类
关键字: spring 的优秀工具类盘点

?

对于位于远程服务器(Web 服务器或 FTP 服务器)的文件资源,您则可以方便地通过 UrlResource 进行访问。

为了方便访问不同类型的资源,您必须使用相应的 Resource 实现类,是否可以在不显式使用 Resource 实现类的情况下,仅根据带特殊前缀的资源地址直接加载文件资源呢?Spring 提供了一个 ResourceUtils 工具类,它支持“classpath:”和“file:”的地址前缀,它能够从指定的地址加载文件资源,请看下面的例子:


清单 2. ResourceUtilsExample

方法说明static Properties loadProperties(Resource resource) 从 Resource 中加载属性static void fillProperties(Properties props, Resource resource) 将 Resource 中的属性数据添加到一个已经存在的 Properties 对象中

特殊编码的资源

当您使用 Resource 实现类加载文件资源时,它默认采用操作系统的编码格式。如果文件资源采用了特殊的编码格式(如 UTF-8),则在读取资源内容时必须事先通过 EncodedResource 指定编码格式,否则将会产生中文乱码的问题。


清单 5. EncodedResourceExample

package com.baobaotao.io;import org.springframework.core.io.ClassPathResource;import org.springframework.core.io.Resource;import org.springframework.core.io.support.EncodedResource;import org.springframework.util.FileCopyUtils;public class EncodedResourceExample {        public static void main(String[] args) throws Throwable  {            Resource res = new ClassPathResource("conf/file1.txt");            // ① 指定文件资源对应的编码格式(UTF-8)            EncodedResource encRes = new EncodedResource(res,"UTF-8");            // ② 这样才能正确读取文件的内容,而不会出现乱码            String content  = FileCopyUtils.copyToString(encRes.getReader());            System.out.println(content);      }}

?

EncodedResource 拥有一个 getResource() 方法获取 Resource,但该方法返回的是通过构造函数传入的原 Resource 对象,所以必须通过 EncodedResource#getReader() 获取应用编码后的 Reader 对象,然后再通过该 Reader 读取文件的内容。

热点排行