因为实验室项目需要用读取配置文件,刚开始我用读文件的形式解析文件信息得到了必要的信息。ZYL师姐告诉我java本身就提供了读取配置文件的类Properties。代码如下:
package xidian.repace.zl;


import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Properties;
import java.util.Vector;
public class ReadConfig {
  public Vector<String> getPara(String fileName) {
        Vector<String> sVec = new Vector<String>();
        Properties prop= new Properties();
        try {
         //InputStream is = this.getClass().getResourceAsStream(fileName);
         InputStream is = new FileInputStream(fileName);
         prop.load(is);
         if(is!=null) is.close();
        }
        catch(Exception e) {
         System.out.println(e+"file "+fileName+" not found");
        }
        
        sVec.add(prop.getProperty("IP"));
        sVec.add(prop.getProperty("port"));
        sVec.add(prop.getProperty("serviceName"));
        return sVec;
     }
        
     public static void main(String[] args) {
        ReadConfig pro = new ReadConfig();
        Vector<String> sVec = pro.getPara("E:\\myProjects\\java\\JRegistry\\conf\\oracle.conf");
        System.out.println(sVec.elementAt(0));
        System.out.println(sVec.elementAt(1));
        System.out.println(sVec.elementAt(2));
     }

}
代码
InputStream is = this.getClass().getResourceAsStream(fileName);
读取文件时文件默认的根目录为Class文件所在的目录,配置文件只能放在和class文件同一个目录中,不能从其他位置读取文件。为了解决这个问题,用FileInputStream构造InputStream对象,可以根据文件的绝对位置读取配置文件,默认的根目录为此java工程所在目录。
读取的文件格式如下:
IP=202.117.118.45
port=1521
serviceName=repace