新人关于配置文件的读取问题

配置文件:sqlconfig.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost/struts
name=root
password=root

使用如下代码读出的就是是空值;

public static void main(String []args)
{
read();
}
public static void read()
{
try {
Properties pro=new Properties();
Reader in=new FileReader("src\sqlconfig.properties");
pro.load(in);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
driver=pro.getProperty("driver");
System.out.println(driver);
url=pro.getProperty("url");
System.out.println(url);
name=pro.getProperty("name");
System.out.println(name);;
password=pro.getProperty("password");
System.out.println(password);
}
}
结果:
null
null
null
null

而稍稍修改代码就能正常读出

public static void main(String []args)
{
read();
}
public static void read()
{
Properties pro=null;
Reader in=null;
try {
pro=new Properties();
in=new FileReader("src\sqlconfig.properties");
pro.load(in);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
driver=pro.getProperty("driver");
System.out.println(driver);
url=pro.getProperty("url");
System.out.println(url);
name=pro.getProperty("name");
System.out.println(name);;
password=pro.getProperty("password");
System.out.println(password);
}
}
结果:
com.mysql.jdbc.Driver
jdbc:mysql://localhost/struts
root
root
求各位大神解答?

3个回答

1、在try中声明的变量,相当于一个局部变量,其作用域范围,仅限于try中

2、如果在try之前声明的变量,则可以在try中使用

在Java中,变量的作用域分为四个级别:类级、对象实例级、方法级、块级。不同级别的变量访问权限不一样。

你可以参考一下这篇文章:http://blog.csdn.net/it1039871366/article/details/50554218

chenbaige
legendCoder 接着,上面try中代码属于块级别的定义的变量,变量的生存周期就是这个块,出了这个块就消失了,比如 if、for 语句的块。作用域:类>对象级>方法级>块级。
2 年多之前 回复

在try中声明的变量,相当于一个局部变量,其作用域范围,仅限于try中

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问