java读取properties文件

publicclassgetProperties{privatestaticPropertiesconfig=null;static{InputStreamin=getP... public class getProperties {
private static Properties config = null;

static {
InputStream in = getProperties.class.getClassLoader().getResourceAsStream(
"config.properties");
config = new Properties();
try {
config.load(in);
in.close();
} catch (IOException e) {
System.out.println("No AreaPhone.properties defined error");
}
}

// 根据key读取value
public static String readValue(String key) {
// Properties props = new Properties();
try {
String value = config.getProperty(key);
return value;
} catch (Exception e) {
e.printStackTrace();
System.err.println("ConfigInfoError" + e.toString());
return null;
}
}

// 读取properties的全部信息
public static void readAllProperties() {
try {

Enumeration en = config.propertyNames();
while (en.hasMoreElements()) {
String key = (String) en.nextElement();
String Property = config.getProperty(key);
System.out.println(key + Property);
}
} catch (Exception e) {
e.printStackTrace();
System.err.println("ConfigInfoError" + e.toString());
}
}

public static void main(String args[]) {
// String LaSaPhone=config.getProperty("LaSaPhone");
// System.out.println(LaSaPhone);
// System.out.println(getPhone.readValue("LaSaPhone"));
getProperties.readAllProperties();
}
}

config.properties文件:
#area message phone :
LaSaPhone=08916539292
RikaZePhone=08916539292
ShanNanPhone=08916539292
LiZhiPhone=08916539292
ALiPhone=08916539292
ChangDuPhone=08916539292
NaQuPhone=08916539292

我将config.properties文件放在根目录下,但运行时报:
java.lang.ExceptionInInitializerError
Caused by: java.lang.NullPointerException
at java.io.Reader.<init>(Reader.java:61)
at java.io.InputStreamReader.<init>(InputStreamReader.java:80)
at java.util.Properties.load(Properties.java:189)
at com.liuchen.getProperties.<clinit>(getProperties.java:16)
Exception in thread "main"
似乎config.load(in);这里的in是null,但有文件啊,这是怎么回事?谢谢!
已经放在src目录了,但还是报那个错的

InputStream in=getProperties.class.getClassLoader().getResourceAsStream("/config.properties");
这个也不行啊,这是怎么回事?
展开
 我来答
百度网友eafe715dc
推荐于2018-03-01 · TA获得超过1490个赞
知道小有建树答主
回答量:763
采纳率:50%
帮助的人:641万
展开全部
InputStream in = getProperties.class.getClassLoader().getResourceAsStream(
"config.properties");
这一句换个写法试试:

Properties props = new Properties();
String url = this.getClass().getClassLoader().getResource(
"config.properties").toString().substring(6);
String empUrl = url.replace("%20", " ");// 如果你的文件路径中包含空格,是必定会报错的
System.out.println(empUrl);
InputStream in = null;
try {
in = new BufferedInputStream(new FileInputStream(empUrl));
props.load(in);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}

我就是一直这么写的,没问题。
我猜你读取文件为空的原因,是你的文件路径有空格。
liaomeihua2300
2010-07-22
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
InputStream in = getProperties.class.getClassLoader().getResourceAsStream("config.properties");
这句改成
InputStream in = getProperties.class.getResourceAsStream("config.properties");
就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c89dd9f984
推荐于2016-02-26 · TA获得超过4563个赞
知道大有可为答主
回答量:5241
采纳率:95%
帮助的人:1627万
展开全部
  Java读取properties文件的方法比较多;
  在最常用的读取properties文件的方式--->“通过java.lang.Class类的getResourceAsStream(String name) 方法来实现”;
  代码:
  InputStream in = getClass().getResourceAsStream("资源Name");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tantk1
2010-07-19
知道答主
回答量:15
采纳率:0%
帮助的人:0
展开全部
文件放到src下,使用
InputStream in =
new ClassPathResource("config.properties").getInputStream();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无名小书屋
2010-07-13 · TA获得超过111个赞
知道小有建树答主
回答量:408
采纳率:100%
帮助的人:126万
展开全部
config.properties 这个文件是在src下面,getProperties.java文件是在
com.liuchen包下面,这样可以运行的,我已经试过了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式