文档章节

解决spring的读取文件的工具类来获取文件等操作

之渊
 之渊
发布于 2017/09/09 17:09
字数 371
阅读 22
收藏 1
点赞 0
评论 0

今天项目又遇到了,,,读取项目下文件的情况下。 其实这个挺头疼的,,,特别是 Java web项目 下的方式和 Java 项目 下 读取文件的相对路径是有点区别的。。。所以感觉挺不好搞的。。。

而且 我们使用 第三方的 类库,工具类的时候,需要将 文件的路径给传递进去的。。。 可是 这时候 使用相对路径怎么写? 如果使用 绝对的路径又怎么写呢? 使用 非常原生的方式? 拼路径? 比如 求出 Java web的项目的当前的绝对路径,,, 或者求出当前 class 类的 根路径吗。 其实都挺不好用的。 其实我们可以是用 spring的 工具类来获取到 文件的。不用我们再次 写实现代码了。而且spring 读取文件 classpath 下面的 文件 功能还是很强大的。。。


		try {
                        // 1, 使用spring工具类 来获取文件
			File cfgFile = ResourceUtils.getFile("classpath:config/allinpay/20060400000044502.p12");
			System.out.println(cfgFile.getAbsolutePath());
			System.out.println(cfgFile.getCanonicalPath());
			System.out.println(cfgFile.getPath());
			System.out.println(cfgFile.getParent());
			System.out.println(cfgFile.getName());
		} catch (Exception e1) {
			// TODO Auto-generated catch block
			System.out.println("文件没找到");
			e1.printStackTrace();
		}

		String bString = "";
		try {
                        //2, 获取 classpath的 根路径然后 文件的 绝对路径求出来。
			bString = Thread.currentThread().getContextClassLoader().getResource("").toURI().getPath();
			System.out.println(Thread.currentThread().getContextClassLoader().getResource("").toURI().getPath());
		} catch (URISyntaxException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println(req.getServletPath());
		System.out.println(req.getSession().getServletContext().getRealPath(""));

		File file = new File(bString + "config/allinpay/allinpay-pds.cer");
		File file2 = new File("/config/allinpay/allinpay-pds.cer");
		System.out.println(file.exists());
		System.out.println(file2.exists());

http://blog.csdn.net/loveschen/article/details/54021242

© 著作权归作者所有

共有 人打赏支持
之渊
粉丝 11
博文 492
码字总数 143231
作品 0
佛山
程序员
Spring从MongoDB中下载文件之GridFS

问题 之前提到过以GridFS方式上传问题到MongoDB中:Spring保存文件到MongoDB之GridFS支持。现在需要从Mongodb中读取文件,应该怎么处理类? 解决 Maven 注解mongoDbFactory 获取文件流 Note...

亚林瓜子 ⋅ 06/12 ⋅ 0

Spring中的优秀工具类(1):文件资源操作和 Web 相关工具类

文件资源操作 文件资源的操作是应用程序中常见的功能,如当上传一个文件后将其保存在特定目录下,从指定地址加载一个配置文件等等。我们一般使用 JDK 的 I/O 处理类完成这些操作,但对于一般...

采女孩的小蘑菇1 ⋅ 2014/03/31 ⋅ 1

Spring 的优秀工具类盘点,第 1 部分: 文件资源操作和 Web 相关工具类

Spring 不但提供了一个功能全面的应用开发框架,本身还拥有众多可以在程序编写时直接使用的工具类,您不但可以在 Spring 应用中使用这些工具类,也可以在其它的应用中使用,这些工具类中的大...

lvzjane ⋅ 2014/03/01 ⋅ 0

spring boot 1.5.4 入门和原理(二)

1 spring boot入门 1.1 环境准备 JDK 7及以上 eclipse开发工具 项目管理工具Maven 本文采用、RELEASE(或1.5.2.RELEASE)调试通过。 spring-boot相关项目源码, 码云地址:https://git.oschi...

wyait ⋅ 2017/09/18 ⋅ 0

Spring IOC 实现原理

Spring IOC 实现原理 IOC: Inversion of Control ,即 "控制反转" , 不是什么技术,而是一种思想。原先需要自行实例化的对象, 交给IOC容器去实现。那么控制反转,谁被控制? 谁被反转 ? 在...

起个名忒难 ⋅ 05/17 ⋅ 0

微服务下 Spring Boot Maven 工程依赖关系管理

单体 Spring Boot Maven 工程 最基本的 包含工程信息、Spring Boot 父工程、属性配置、依赖包、构建插件 微服务多 Spring Boot 应用依赖关系管理 蓝色:仅 pom.xml 文件,无代码 黄色:包含 ...

Anoyi ⋅ 06/07 ⋅ 0

Spring JdbcTemplate使用详解

JdbcTemplate简介   Spring对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中。   JdbcTemplate位于中。其全限定命名为org.spr...

u012843873 ⋅ 04/23 ⋅ 0

Spring Bean注册解析(一)

Spring是通过IoC容器对Bean进行管理的,而Bean的初始化主要分为两个过程:Bean的注册和Bean实例化。Bean的注册主要是指Spring通过读取配置文件获取各个bean的声明信息,并且对这些信息进行注...

张旭峰 ⋅ 05/12 ⋅ 0

说说在 Spring 中如何引用外部属性文件

进行数据源或者 FTP 服务器等资源配置时,我们可以将这些配置信息放到一个独立的外部属性文件中,并在 Spring 配置文件中通过形如 、 的占位符方式来引用属性文件中的属性项 。 这种方式的配...

deniro ⋅ 05/22 ⋅ 0

spring容器问题:解决图片服务器地址无法解析

项目中将图片服务器分离出来,相关配置单独配置到一个 properties 文件中,并使用spring管理该配置文件,如图: 使用的是Nginx 来负责图片服务的处理,关键配置如下: 启动项目进行图片上传的...

sprouting ⋅ 2016/05/13 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

spring Email

使用spring发Email其实就是使用spring自己封装携带的一个javamail.JavaMailSenderImpl类而已。这个类可以当一个普通的java对象来使用,也可以通过把它配置变成spring Bean的方式然后注入使用...

BobwithB ⋅ 25分钟前 ⋅ 0

spark 整理的一些知识

Spark 知识点 请描述spark RDD原理与特征? RDD全称是resilient distributed dataset(具有弹性的分布式数据集)。一个RDD仅仅是一个分布式的元素集合。在Spark中,所有工作都表示为创建新的...

tuoleisi77 ⋅ 28分钟前 ⋅ 0

思考

时间一天天过感觉自己有在成长吗?最怕的是时光匆匆而过,自己没有收获!下面总结下最近自己的思考。 认识自己 认识另一个自己,人们常说要虚心听取别人意见和建议。然而人往往是很难做到的,...

hello_hp ⋅ 28分钟前 ⋅ 0

IT行业的变革就像世界杯德国对战墨西哥一样难以预测[图]

最近在观看世界杯,尤其是昨天的比赛,上一届卫冕冠军德国队居然0:1告负墨西哥,这创造了历史,首先是墨西哥从来没赢过德国队,其次是德国队36年来首站没输过,再差也是打平,而这次,德国队...

原创小博客 ⋅ 47分钟前 ⋅ 0

解决CentOS6、7,/etc/sysconfig/下没有iptables的问题

一、Centos 6版本解决办法: 1.任意运行一条iptables防火墙规则配置命令: iptables -P OUTPUT ACCEPT 2.对iptables服务进行保存: service iptables save 3.重启iptables服务: service ...

寰宇01 ⋅ 57分钟前 ⋅ 2

数据库备份和恢复

备份:mysqldump -u root -p 数据库>磁盘路径 恢复:mysql -u root -p 数据库<sql脚本的磁盘路径

anlve ⋅ 今天 ⋅ 0

发生了什么?Linus 又发怒了?

在一个 Linux 内核 4.18-rc1 的 Pull Request 中,开发者 Andy Shevchenko 表示其在对设备属性框架进行更新时,移除了 union 别名,这引发了 Linus 的暴怒。 这一次 Linus Torvalds 发怒的原...

问题终结者 ⋅ 今天 ⋅ 0

在树莓派上搭建一个maven仓库

在树莓派上搭建一个maven仓库 20180618 lambo init 项目说明 家里有台树莓派性能太慢。想搭建一个maven私服, 使用nexus或者 jfrog-artifactory 运行的够呛。怎么办呢,手写一个吧.所在这个...

林小宝 ⋅ 今天 ⋅ 0

Spring发展历程总结

转自与 https://www.cnblogs.com/RunForLove/p/4641672.html 目前很多公司的架构,从Struts2迁移到了SpringMVC。你有想过为什么不使用Servlet+JSP来构建Java web项目,而是采用SpringMVC呢?...

onedotdot ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部