zoukankan      html  css  js  c++  java
  • 资源访问利器

    Spring设计一个Resource接口,它为应用提供了更强的访问底层资源的能力。该接口拥有对应不同的资源类型的实现类。

    1)boolean exists():资源是否存在;
    2)boolean isOpen():资源是否打开;
    3)URL getURL() throws IOException:如果底层资源可以表示成URL,该方法返回对应的URL对象;
    4)File getFile() throws IOException:如果底层资源对应一个文件,该方法返回对应的File对象;
    5)InputStream getInputStream() throws IOException:返回资源对应的输入流。
     
    样例项目结构图:
     
     
     
    FileSourceExample:
    package com.resource;
    import org.springframework.core.io.ClassPathResource;
    import org.springframework.core.io.FileSystemResource;
    import org.springframework.core.io.Resource;
    import org.springframework.core.io.support.EncodedResource;
    import org.springframework.util.FileCopyUtils;
    import java.io.IOException;
    import java.io.InputStream;
    /**
     * Created by gao on 16-3-18.
     */
    public class FileSourceExample {
        public static void main(String[] args) {
            try {
                String filePath = "C:\workspace\Projects\chapter03\web\WEB-INF\classes\conf\file1.txt";
                //使用系统文件路径方式加载文件
                Resource res1 = new FileSystemResource(filePath);
                //使用类路径方式加载文件
                Resource res2 = new ClassPathResource("file1.txt");
                EncodedResource encRes = new EncodedResource(res2, "UTF-8");
                String content = FileCopyUtils.copyToString(encRes.getReader());
                System.out.println(content);
                InputStream ins1 = res1.getInputStream();
                InputStream ins2 = res2.getInputStream();
                System.out.println("res1:" + res1.getFilename());
                System.out.println("res2:" + res2.getFilename());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    输出结果:

    Haha
    you get me!!!
    hello
    My name is LiuShiZhen~~
    res1:file1.txt
    res2:file1.txt
     
    idnex.jsp:
    <%@ page language="java" contentType="text/html; charset=utf-8"
             pageEncoding="utf-8"%>
    <jsp:directive.page import="org.springframework.web.context.support.ServletContextResource"/>
    <jsp:directive.page import="org.springframework.core.io.Resource"/>
    <jsp:directive.page import="org.springframework.web.util.WebUtils"/>
    <%
        Resource res3 = new ServletContextResource(application,"\WEB-INF\classes\conf\file1.txt");
        out.print(res3.getFilename()+"<br/>");
        out.print(WebUtils.getTempDir(application).getAbsolutePath());
    %>

    输出结果:

     
     
     
     
     
     
     
  • 相关阅读:
    聚类算法初探(六)OPTICS
    滚动视差效果——background-attachment
    Working with Strings(使用Oracle字符串)
    netstat详解
    lua的学习
    C# 基础知识 (一).概念与思想篇
    11gR2 RAC启用iptables导致节点宕机问题处理
    sqlplus中隐患组合键
    paip.vs2010 或.net 4.0安装出错解决大法.
    paip.svn使用最佳实践
  • 原文地址:https://www.cnblogs.com/yangyquin/p/5292710.html
Copyright © 2011-2022 走看看