文档章节

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

之渊
 之渊
发布于 2017/09/09 17:09
字数 371
阅读 29
收藏 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

© 著作权归作者所有

共有 人打赏支持
之渊
粉丝 11
博文 508
码字总数 150392
作品 0
佛山
程序员
Spring 的优秀工具类盘点,第 1 部分: 文件资源操作和 Web 相关工具类

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

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

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

采女孩的小蘑菇1
2014/03/31
0
1
10分钟入门SpringBoot

SpringBoot是基于spring框架衍生的一种新的微服务框架,如果对Spring有一定了解的同学肯定知道在Spring中需要配置各种xml文件完成bean的注册操作,随着服务越来越多,配置就变得越来越复杂,...

jwfy
06/14
0
0
Spring从MongoDB中下载文件之GridFS

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

亚林瓜子
06/12
0
0
spring boot框架学习之重要注解3注解方式读取外部资源配置文件

本节主要内容: 1:是用非注解方式怎么获取配置文件中的配置项 2:使用注解实战获取外部properties文件配置项 声明: 本文是《凯哥陪你学系列-框架学习之spring boot框架学习》中spring boot框...

凯哥java
2017/10/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

C++ gflags

gflags是google一个开源的处理命令行参数的库,相比getopt,更加容易使用。 定义参数 gflags主要支持的参数类型包括 DEFINEbool: boolean DEFINEint32: 32-bit integer DEFINEint64: 64-bit ...

SibylY
23分钟前
0
0
intellij IDEA Properties中文unicode转码问题

在IDEA中创建了properties文件,发现默认中文不会自动进行unicode转码。如下 在project settings - File Encoding,在标红的选项上打上勾,确定即可 效果图如下: unicode转码后效果...

muzi1994
23分钟前
0
0
Java IO类库之PipedWriter

一、PipedWriter介绍 PipedWriter是字符管道输出流,继承自Writer,功能与PipedOutputStream类似,通过与PipedReader组合使用实现类似管道的功能,在多线程环境下,一个线程使用PipedWriter...

老韭菜
27分钟前
0
0
精简分页组件(手写)

需要引入CSS(没错就是这4行) .pagelist { text-align: center; color: #666; width: 100%; clear: both; margin: 20px 0; padding-top: 20px }.pagelist a { color: #666; margin: 0 2px;......

AK灬
28分钟前
3
0
29 岁成为阿里巴巴 P8,工作前 5 年完成晋升 3 连跳,他如何做到?

泡泡是我的好朋友。今年 31 岁,毕业后就进了阿里巴巴,工作五年内从 P4 晋升至 P6、P7、P8。 和他很少聊到工作,但总觉得他有很棒的职场心得,应该分享出来,于是有了这次采访。希望对职场新...

Java填坑之路
30分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部