java properties 路径问题_Java 读取Properties文件时应注意的路径问题
Java读取properties文件的方法比较多,网上最多的文章是"Java读取properties文件的六种方法",但在Java应用中,最常用还是通过java.lang.Class类的getResourceAsStream(String name) 方法来实现,但我见到众多读取properties文件的代码中,都会这么干:
InputStream in = getClass().getResourceAsStream("资源Name");
这里面有个问题,就是getClass()调用的时候默认省略了this!我们都知道,this是不能在static(静态)方法或者static块中使用的,原因是static类型的方法或者代码块是属于类本身的,不属于某个对象,而this本身就代表当前对象,而静态方法或者块调用的时候是不用初始化对象的。
问题是:假如我不想让某个类有对象,那么我会将此类的默认构造方法设为私有,当然也不会写别的共有的构造方法。并且我这个类是工具类,都是静态的方法和变量,我要在静态块或者静态方法中获取properties文件,这个方法就行不通了。
那怎么办呢?其实这个类就不是这么用的,他仅仅是需要获取一个Class对象就可以了,那还不容易啊--取所有类的父类Object,用Object.class难道不比你的用你正在写类自身方便安全吗 ?呵呵,下面给出一个例子,以方便交流。
import java.util.Properties;
import java.io.InputStream;
import java.io.IOException;
/**
* 读取Properties文件的例子
* File: TestProperties.java
* User: leizhimin
* Date: 2008-2-15 18:38:40
*/
public final class TestProperties {
private static String param1;
private static String param2;
static {
Properties prop = new Properties();
InputStream in = Object.class.getResourceAsStream("/test.properties");
try {
prop.load(in);
param1 = prop.getProperty("initYears1").trim();
param2 = prop.getProperty("initYears2").trim();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 私有构造方法,不需要创建对象
*/
private TestProperties() {
}
public static String getParam1() {
return param1;
}
public static String getParam2() {
return param2;
}
public static void main(String args[]){
System.out.println(getParam1());
System.out.println(getParam2());
}
}
运行结果:
151
152
Process finished with exit code 0
当然,把Object.class换成int.class照样行,呵呵,大家可以试试。
另外,如果是static方法或块中读取Properties文件,还有一种最保险的方法,就是这个类的本身名字来直接获取Class对象,比如本例中可写成TestProperties.class,这样做是最保险的方法
java properties 路径问题_Java 读取Properties文件时应注意的路径问题相关推荐
- java读txt文件乱码_java读取txt文件时出现中文乱码怎么解决
java读取txt文件时出现中文乱码怎么解决 发布时间:2020-06-25 15:27:31 来源:亿速云 阅读:105 作者:Leah java读取txt文件时出现中文乱码怎么解决?针对这个问题, ...
- java 存取xml数据_JAVA读取XML文件数据
XML文档内容如下: title1 title2 title3 JAVA代码如下: package cn.mylucene; import java.io.File; import java.io.I ...
- java 读excel 流_Java 读取excel 文件流代码实例
这篇文章主要介绍了Java 读取excel 文件流代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下public static voi ...
- java生成txt表格_java读取txt文件表格并生成新txt
展开全部 可以使用java中的I/O流来读取文件并生产新文件,给你个代码例子:import java.io.BufferedReader; import java.io.File; import ja ...
- java 导入world数据_java读取world文件,把world文件中的内容,原样输出到页面上。...
POI,处理可以.样式在Java代码中添加就可以.给了一个例子这个是Excel的.package cn.com.my.common; import java.io.File; import java. ...
- java read出错_java读取txt文件时,错误的把txt内容读取了两遍
package标准化模拟考试;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.io.*;importjav ...
- java下mysql连接配置文件_Java读取.properties配置文件并连接数据库
1.读取配置文件 //Properties集合 流对象读取键值对 public static void getNum() throws Exception { Properties p=new Pro ...
- java读取word文件并设置其字体样式_Java读取word文件,字体,颜色(示例代码)
在Android读取Word文件时,在网上查看时可以用tm-extractors,但好像没有提到怎么读取Word文档中字体的颜色,字体,上下标等相关的属性.但由于需要,要把doc文档中的内容(字体,下 ...
- java中读取mp3文件_java读取mp3文件
JMF实际上是Java的一个类包.JMF 2.1.1技术提供了先进的媒体处理能力,从而扩展了Java平台的功能.这些功能包括:媒体捕获.压缩.流转.回放,以及对各种主要媒体形式和编码的支 持,如M-J ...
最新文章
- 一文看尽各种 NLP 任务
- tyvj1305 最大子序和 【单调队列优化dp】
- wiki多个文件一起导入_wiki.js 使用 postgres 支持中文全文检索
- 【Python基础】Python 100 例带你入门
- QT学习:读写二进制文件
- Linux下怎么创建和进入带有空格的文件夹
- 如何删除eclipse多余的工作空间
- sklearn自学指南(part46)--新颖性和离群值检测方法概述
- 2015生命之旅---第二站长沙杭州
- 百度360之争的背后
- 括号匹配算法Java实现
- 按键精灵找图找色找字比色等图色命令失败的通用解决思路
- 微星网卡linux驱动,微星b360系列win10无法安装网卡驱动解决方法_武汉久龙电脑维修中心...
- 流计算及在特来电监控引擎中的实践
- arduino nano 简单点亮LED灯和实现串口时钟计时
- 20201009 Latex参考文献自动排序 \begin{thebibliography}
- mysql into loadfile_mysql load_file()和 into outfile
- 博客从CSDN搬至开源中国
- Windows系统下安装CVAT标注工具
- 博杰声学测试软件,音频分析仪 - Audio Precision 官方网站 - 声学和音频测试公认的标准...
热门文章
- VB6中如何使用C#开发的WebService进行开发
- js实现贪吃蛇小游戏
- java ajax 登陆验证,Spring Security4实例(Java config版)——ajax登录,自定义验证
- LeetCode Algorithm 202. 快乐数
- 【Hive】一次被分区条件和笛卡尔积制裁的经历
- 数塔 HDU - 2084
- 【机器视觉】 dev_set_color算子
- 什么用于创建python与数据库之间的链接_python3连接数据库用什么
- kotlin sealed 中_Kotlin sealed class
- Codeforces 845 C. Two TVs 思路:简单贪心算法