资源访问利器

简介: 原文:资源访问利器Spring设计一个Resource接口,它为应用提供了更强的访问底层资源的能力。该接口拥有对应不同的资源类型的实现类。 1)boolean exists():资源是否存在; 2)boolean isOpen():资源是否打开; 3)URL getURL() throws ...
原文: 资源访问利器

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());
%>

 

输出结果:

 
 
 
 
 
 
 
目录
相关文章
|
3月前
|
数据采集 机器人 BI
阿里云 RPA 的优势:节省时间和资源
在当今数字化时代,企业和组织越来越注重提高效率、降低成本,以保持竞争力。在这样的背景下,阿里云 RPA(机器人流程自动化)技术应运而生。阿里云 RPA 是一种可以模拟人类操作的软件机器人,它能够在不需要人工干预的情况下执行重复性、规则性的任务。这项技术的优势在于可以帮助企业节省时间和资源,提高生产效率。
|
安全 大数据 数据挖掘
重磅,无需特殊工具,直接访问网站!
还在等什么,快来一起讨论关注吧,公众号【八点半技术站】,欢迎加入社群
重磅,无需特殊工具,直接访问网站!
GameMakerStudio学习资源
GameMakerStudio学习资源
71 0
|
安全 Java 关系型数据库
案例之创建资源服务器准备工作|学习笔记
快速学习案例之创建资源服务器准备工作
94 0
案例之创建资源服务器准备工作|学习笔记
|
监控 关系型数据库 数据库
资源监控 | 学习笔记
快速学习资源监控
75 0
资源监控 | 学习笔记
|
前端开发 IDE Java
Javaweb学习笔记(二)之发布动态资源
本文主要介绍了Javaweb项目实践案例,即发布动态资源和Servlet的简单介绍。
239 0
Javaweb学习笔记(二)之发布动态资源
|
人工智能 JSON 前端开发
学习资源
大家好,推荐一些学习资源给大家 当然大家可以留言评论自己发现的优秀资源地址
|
弹性计算 运维 Kubernetes
可自由选择你喜欢的语言管理阿里云资源
开放平台正式支持Pulumi,方便你的云资源管理
可自由选择你喜欢的语言管理阿里云资源