Spring文件资源操作和Web相关工具类盘点

http://tech.ddvip.com   2007年08月21日    社区交流

内容摘要:Spring 提供了许多方便易用的资源操作工具类,它们大大降低资源操作的复杂度,同时具有更强的普适性。这些工具类不依赖于 Spring 容器,这意味着您可以在程序中象一般普通类一样使用它们。

  往往我们都通过直接操作 InputStream 读取文件的内容,但是流操作的代码是比较底层的,代码的面向对象性并不强。通过 FileCopyUtils 读取和拷贝文件内容易于操作且相当直观。如在 ① 处,我们通过 FileCopyUtils 的 copyToByteArray(File in) 方法就可以直接将文件内容读到一个 byte[] 中;另一个可用的方法是 copyToByteArray(InputStream in),它将输入流读取到一个 byte[] 中。

  如果是文本文件,您可能希望将文件内容读取到 String 中,此时您可以使用 copyToString(Reader in) 方法,如 ② 所示。使用 FileReader 对 File 进行封装,或使用 InputStreamReader 对 InputStream 进行封装就可以了。

  FileCopyUtils 还提供了多个将文件内容拷贝到各种目标对象中的方法,这些方法包括:

  方法 说明

  static void copy(byte[] in, File out) 将 byte[] 拷贝到一个文件中

  static void copy(byte[] in, OutputStream out) 将 byte[] 拷贝到一个输出流中

  static int copy(File in, File out) 将文件拷贝到另一个文件中

  static int copy(InputStream in, OutputStream out) 将输入流拷贝到输出流中

  static int copy(Reader in, Writer out) 将 Reader 读取的内容拷贝到 Writer 指向目标输出中

  static void copy(String in, Writer out) 将字符串拷贝到一个 Writer 指向的目标中

  在实例中,我们虽然使用 Resource 加载文件资源,但 FileCopyUtils 本身和 Resource 没有任何关系,您完全可以在基于 JDK I/O API 的程序中使用这个工具类。

  属性文件操作

  我们知道可以通过 java.util.Properties的load(InputStream inStream) 方法从一个输入流中加载属性资源。Spring 提供的 PropertiesLoaderUtils 允许您直接通过基于类路径的文件地址加载属性资源,请看下面的例子:

责编:豆豆技术应用

正在加载评论...