在java中读取属性文件

时间:2013-02-07 07:29:51

标签: java

我有一个属性文件,我想在我的java程序中读取它.. 代码是

Properties prop = new Properties();
File file =new  File("sendmails.properties");
String absolutePath = file.getAbsolutePath();


FileReader reader = new FileReader(file) ; 
prop.load(reader);
  • 找不到文件异常显示。
  • 两个文件都在同一目录中

有人能给我一个解决方案吗?

6 个答案:

答案 0 :(得分:0)

File file = new File("sendmails.properties");
                   ^^^^^   

放置正确的文件路径。

答案 1 :(得分:0)

我猜问题是你的工作目录。

您可以通过以下方式检查工作目录:

String workingDir = System.getProperty("user.dir");
System.out.println("Current working directory : " + workingDir);

并检查该文件夹下是否存在该文件(我猜不是......)

两种解决方案:

  1. 使用绝对路径,您可以从文件系统

    获取

    文件档案=新档案(“d:/sendmails.properties”);

  2. 检查当前工作目录的相对路径。如果您需要使用4个文件夹:

    文件档案=新档案(“../../../../ sendmails.properties”);

答案 2 :(得分:0)

创建文件时,要么使用绝对路径,要么在类路径中包含属性,并使用类加载器加载它们:

prop.load(classLoader.getResourceAsStream("sendmails.properties"))

答案 3 :(得分:0)

属性文件应该在您的类路径中。将属性文件所在的目录添加到服务器/系统类路径中,您的问题将得到解决。

答案 4 :(得分:0)

package readFile;
import java.util.Enumeration;
import java.util.ResourceBundle;
public class ReadPropFile 
{
    public static void main(String[] args) 
    {
        ResourceBundle bundle = ResourceBundle.getBundle("MyProp");
        //System.out.println(bundle.toString());
        String email = bundle.getString("email");
        String password = bundle.getString("password");
        System.out.println("Email :: "+email);
        System.out.println("Password :: "+password);
        // Fetch all the Properties.
        Enumeration keys = bundle.getKeys();
        while(keys.hasMoreElements()){
        System.out.println(keys.nextElement());
        }
    }
}

MyProp.properties应该在src文件夹中

MyProp.properties email = hussain 密码= hussain

答案 5 :(得分:0)

我做的是:

  Properties props = new PropertiesBean(configPath);
    /* where 
    configPath = this.getClass().getName();
    */

希望有所帮助。