文档章节

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

之渊
 之渊
发布于 2017/09/09 17:09
字数 371
阅读 280
收藏 1

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

今天项目又遇到了,,,读取项目下文件的情况下。 其实这个挺头疼的,,,特别是 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

© 著作权归作者所有

之渊
粉丝 14
博文 725
码字总数 255595
作品 0
佛山
程序员
私信 提问
加载中

评论(0)

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

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

lvzjane
2014/03/01
136
0
Spring中的优秀工具类(1):文件资源操作和 Web 相关工具类

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

采女孩的小蘑菇1
2014/03/31
149
1
Component注解的派生性原理

1:模式注解 俗称为模式注解。Spring核心部分提供了几种内建的,如@Component,@Repository,@Service,@Controller,@Configuration等。这些注解均。 由于Java语言规定,Annotation不允许继承,没有...

osc_4nbpryu9
2019/07/04
4
0
Spring 注解编程之 AnnotationMetadata

在上篇文章 Spring 注解编程之模式注解 中我们讲到 Spring 模式注解底层原理,依靠 接口判断是否存在指定元注解。 这篇文章我们主要深入 ,了解其底层原理。 Spring 版本为 5.1.8-RELEASE An...

osc_6oe4sgbd
2019/07/20
5
0
我该如何学习spring源码以及解析bean定义的注册

如何学习spring源码 前言 本文属于spring源码解析的系列文章之一,文章主要是介绍如何学习spring的源码,希望能够最大限度的帮助到有需要的人。文章总体难度不大,但比较繁重,学习时一定要耐...

osc_d4gurmqk
04/16
9
0

没有更多内容

加载失败,请刷新页面

加载更多

window下 mongodb开启用户名和密码 权限

在默认情况下,mongod是监听在127.0.0.1之上的,任何客户端都可以直接连接27017,且没有认证。 好处是,用户可以即时上手,不用担心被一堆配置弄的心烦意乱。 坏处是,公网服务器搭建MongoDB...

东东笔记
今天
9
0
数据倾斜

数据倾斜: 两种数据倾斜发生的现象: 80%情况下都发生挂了,只有极少20%情况下能把task执行完成 窄依赖:结构简单,如果发生数据丢失,方便查找丢失的数据 宽依赖:结构复杂,如何发生数据丢...

七宝1
今天
20
0
我的jdk源码(十一):ArrayList

一、概述 ArrayList类是AbstractList的子类,实现了具体的add(), set(), remove()等方法。它是一个可调整大小的数组可以用来存放各种形式的数据。 二、源码分析 (1) 类的声明,源码如下: ...

Java觉浅
昨天
24
0
vnc server,vnc server是什么,vnc工具推荐

nc server是一个用来共享linux服务器上资源给其他分布式用户的服务只要再一台linux系统的机器上安装vnc server,然后开启服务,其他机器就可以通过vncviewer访问这台机器上的共享资源,那么今...

兔子m
昨天
20
0
COLA的扩展性使用和源码研究

cola扩展点使用和设计初探 封装变化,可灵活应对程序的需求变化。 扩展点使用 步骤: 定义扩展点接口,类型可以是校验器,转换器,实体; 必须以ExtPt结尾,表示一个扩展点。 比如,我定义一个...

李福春carter
昨天
27
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部