Java获取配置文件跟路径
一直以为使用new File(相对路径)可以读取class目录下的文件,其实不然。网上查询了一些资料,弄清楚了原理,总结如下:
package com.coshaho.learn; import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader; public class FilePathLearn
{
public static void main(String[] args) throws IOException
{
// 方案1
// 获取代码工程路径,生产环境上只有class文件,没有java文件与代码工程,这种方式不可取
File file = new File("");
System.out.println(file.getCanonicalPath()); // 方案2
// 获取代码工程路径,生产环境上使用会出现问题
System.out.println(System.getProperty("user.dir")); // 方案3
// 获取class文件根目录(路径中包含空格会被转义为%20,此时new File会失败)
file = new File(FilePathLearn.class.getResource("/").getPath());
System.out.println(file.getCanonicalPath()); // 方案4
// 获取class文件目录(路径中包含空格会被转义为%20,此时new File会失败)
file = new File(FilePathLearn.class.getResource("").getPath());
System.out.println(file.getCanonicalPath()); // 方案5
// 可以看出来,这种方法的效果和方案3效果相同
file = new File(FilePathLearn.class.getClassLoader().getResource("").getPath());
System.out.println(file.getCanonicalFile()); // 由于路径可能包含空格,new file可能失败,所以可以直接打开流读取文件
InputStream stream = FilePathLearn.class.getResource("CE_Excel.xml").openStream();
InputStreamReader reader = new InputStreamReader(stream);
BufferedReader bufReader=new BufferedReader(reader); String str = null;
while ((str = bufReader.readLine()) != null)
{
System.out.println(str);
}
}
}
Java获取配置文件跟路径的更多相关文章
- java获取文件的路径问题
java获取文件的路径问题 在java中读取读取文件,经常因为路径的问题找不到,此文用于记录如何定位文件的简单方法. 本基于springboot做的测试,主要是构建工程方便,所用的方法都是JDK中的方 ...
- java获取classpath文件路径空格转变成了转义字符%20的问题
java获取classpath文件路径空格转变成了转义字符%20的问题 这个问题很纠结,服务器的文件路径带有空格,空格被转化是%20了,悲剧就出现了 下面展示一段代码String path = get ...
- web中纯java获取配置文件中的数据
/*********获取配置文件,但配置文件中的值改变,不会随着值的改变也获取的参数值改变**********/ /** * 原因是因为,类装载,装载完后,不会再去装载了 * */// I ...
- java获取当前文件路径的方法
第一种: File f = new File(this.getClass().getResource("/").getPath()); System.out.println(f); ...
- Java获取资源的路径
在Java中,有两种路径: 类路径 文件夹路径 使用类路径有两种方式: object.getClass().getResource()返回资源的URL MyClass.class.getResourc ...
- Java获取web项目路径
File f = new File(WebPath.class.getResource("/").getPath()); String path = f.getParentFile ...
- Java获取配置文件中的属性
获取配置文件的属性值 example 目标配置文件jdbc.properties,现想要在java类里面调用opcl的url jdbc.url=jdbc:mysql://localhost:3306/ ...
- java获取配置文件中变量值
在resources 目录下新建config.properties文件 #文件保存路径 filePath=E:\\images\\file 工具类 public class ConfigUtil { ...
- java获取当前文件路径 [转]
1.如何获得当前文件路径 常用: 字符串类型:System.getProperty("user.dir"); 综合: package com.zcjl.test.base; imp ...
随机推荐
- 【CF725G】Messages on a Tree 树链剖分+线段树
[CF725G]Messages on a Tree 题意:给你一棵n+1个节点的树,0号节点是树根,在编号为1到n的节点上各有一只跳蚤,0号节点是跳蚤国王.现在一些跳蚤要给跳蚤国王发信息.具体的信息 ...
- 【LOJ6077】「2017 山东一轮集训 Day7」逆序对 生成函数+组合数+DP
[LOJ6077]「2017 山东一轮集训 Day7」逆序对 题目描述 给定 n,k ,请求出长度为 n的逆序对数恰好为 k 的排列的个数.答案对 109+7 取模. 对于一个长度为 n 的排列 p ...
- 初始react
很久就期待学习react了,惰性,一直都没有去翻阅react的资料,最近抽空,简单的了解了一下react,先记录一下,后续慢慢的学习. 一.ReactJS简介 React 起源于 Facebook 的 ...
- 在线工具-程序员的工具箱-在线Cron表达式生成器
在线Cron表达式生成器 http://cron.qqe2.com/ 在线工具 - 程序员的工具箱 https://tool.lu/
- linux写文件,追加内容
覆盖文件 echo "hello" > filename 追加文件 echo "haha" >> filename
- hdu 6395Sequence【矩阵快速幂】【分块】
Sequence Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Total ...
- HDU 2819 - Swap - [二分图建模+最大匹配]
题目链接:https://cn.vjudge.net/problem/HDU-2819 Given an N*N matrix with each entry equal to 0 or 1. You ...
- HDU 2187 - 悼念512汶川大地震遇难同胞——老人是真饿了 - [大水题]
讲真,这么水的题,我都不怎么好意思扔到博客上来,但是没办法啊,我总得证明一下今天上午我不是在寝室里瞎玩浪费掉的…… 思路就是,把米按单价从小到大排个序,便宜的买的越多越好,直到钱花光为止……我真的都不 ...
- oracle union 用法
[sql] view plaincopyprint?众所周知的几个结果集集合操作命令,今天详细地测试了一下,发现一些问题,记录备考. 假设我们有一个表Student,包括以下字段与数据: drop t ...
- UVA - 11624 Fire! bfs 地图与人一步一步先后搜/搜一次打表好了再搜一次
UVA - 11624 题意:joe在一个迷宫里,迷宫的一些部分着火了,火势会向周围四个方向蔓延,joe可以向四个方向移动.火与人的速度都是1格/1秒,问j能否逃出迷宫,若能输出最小时间. 题解:先考 ...