类路径读取(加载)配置文件
来源:互联网 发布:删除mac管理员账户 编辑:程序博客网 时间:2024/05/23 01:26
加载资源文件时路径问题
案例1:
不管是java项目还是web项目,用类路径读取配置文件通用性大,移植性好。如下:
InputStream in = JdbcUtil.class.getResourceAsStream("/db.properties");
properties.load(in);
案例2:
如果要是获取java项目中a.zip资源的路径字符串,也可通过方法:
String attachmentFile = this.getClass().getResource("../../../a.zip").toURI().getPath();
案例3:
如果要是获取java项目中hh.png资源的路径字符串,也可通过方法:
SendMail.class.getResource("hh.png").toURI().getPath();//类路径获取资源文件路径
方式1:点 . 代表java的命令运行的目录(不推荐)
在java项目下, 点 . java命令的运行目录从项目的根目录MyEclipse工作空间/bin 目录开始在web项目下,点 . java命令的运行目录从tomact/bin 目录开始
java项目换成web项目时,不具备通用性,所以不能用点.
方式2:使用类路径读取配置文件
/ 斜杠表示classpath的根目录
正好,方式2,在java项目中和web项目中都能一致的读取到资源文件。具有通用性。但是只能是读,不能改,因为是在web项目中tomcat/项目/WEB-INF/classes,更改了内容,再发布会发生更新。在java项目下,classpath的根目录从bin目录开始在web项目下,classpath的根目录从WEB-INF/classes目录开始
例如:
InputStream in = JdbcUtil.class.getResourceAsStream("/db.properties");
properties.load(in);
java中获取路径中的空格处理(%20)问题
在java中获取文件路径的时候,有时候会获取到空格,但是在中文编码环境下,空格会变成“%20”从而使得路径错误。
原因:
URL对空格,特殊字符(%,#,[]等)和中文进行了编码处理。例如:空格变为%20。
解决办法如下:
解决方法1:使用repaceAll("%20", " ")替换后,只能解决空格问题。但是路径中包含%和中文就不行了。
解决方法2:使用URLDecoder.decode(str,"UTF-8")解码,但是只能解决一部分,若路径中含有+,也是不能解决的,原因是URL并不是完全用URLEncoder.encode(str,"UTF-8")编码的,+号被解码后,却变成了空格。
解决方法3:可以解决所有的问题,用TestURL().class.getResource("").toURI().getPath()
//String filePath = SendMail.class.getResource("hh.png").getPath();//类路径获取资源文件路径,但是路径中有空格或者中文等特殊字符会乱码,导致路径不对
/**
* 解决方式1:
*/
//filePath = filePath.replace("%20", " ");//路径中的空格为20%,所以也可以用空格进行字符串替换,但是对中文乱码又无法解决
/**
* 解决方式2:
*/
//String filePath = SendMail.class.getResource("hh.png").getPath();
//filePath = URLDecoder.decode(filePath, "gbk");//只能解决一部分,若路径中含有+,也是不能解决的,原因是URL并不是完全用URLEncoder.encode(str,"UTF-8")编码的,+号被解码后,却变成了空格。
/**
* 解决方式3:(推荐)
*/
String filePath = SendMail.class.getResource("hh.png").toURI().getPath();
System.out.println(".........................." + filePath);
0 0
- 类路径读取(加载)配置文件
- ClassLoad类加载器读取ClassPath路径下的配置文件(一)
- 类路径读取JdbcUtil的配置文件
- java读取类路径的配置文件问题
- JAVA读取配置文件路径
- Spring读取配置文件路径
- ClassLoad类加载器读取ClassPath路径下的配置文件并完成创建JDBC链接(二)
- JDBC之类路径读取配置文件
- tomcat如何配置文件读取路径
- JAVA开发10--加载相对路径下配置文件并读取内容
- C++ 获取当前进程加载模块的完整路径读取配置文件
- 加载配置文件之路径问题
- 读取配置文件加载背景图片,音乐
- WEB项目加载配置文件并读取配置文件
- 类路径下加载配置文件的最好方式
- spring 加载非 类路径下的配置文件
- 通过类加载器的方式读取配置文件
- web工程中通过类加载器读取配置文件
- 树莓派下源代码方式安装opencv
- 紧张的考试周 二分 尺取
- 从main到WinMain
- Linux基本命令汇总
- 关于将程序输出重定向到文件的实现
- 类路径读取(加载)配置文件
- 如何使用付费版的PyCharm
- 注解
- error processing package libapache2-mod-php7.0 (–configure)
- java基础六(面向对象)
- 树-Tree
- hash函数以及冲突处理
- CCCC周六训练赛 数字母的题
- 从ES5语法到ES6语法你应该知道这些