程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java入門 解析配置文件的文件問題

Java入門 解析配置文件的文件問題

編輯:關於JAVA
我們在解析配置文件的時候,常常會為路徑發愁,我就遇到過這樣的情況
  
 

  如上圖所示:
  
  ParsePropertIEs.Java是配置文件database.properties的解析類,那麼我們怎樣去取得它的路徑並解析起配置呢?看解析類ParsePropertIEs的源代碼如下:
  
  package zy.pro.sc.db;
  
  import Java.util.*;
  import Java.io.*;
  
  public class ParsePropertIEs {
  
  Properties properties = new PropertIEs();
  
  public ParsePropertIEs() {
  try{
  this.parseProp();
  }catch(Exception e){
  e.printStackTrace();
  }
  }
  
  public PropertIEs parseProp()throws IOException {
  InputStream is=this.getClass().getResourceAsStream("database.propertIEs");
  propertIEs.load(is);
  is.close();
  return null;
  }
  public String getPropertIEs(String propStr){
  return propertIEs.getProperty(propStr);
  }
  public static void main(String[] args) {
  ParseProperties pp=new ParsePropertIEs();
  String driver=pp.getPropertIEs("jdbc.driver");
  System.out.println(driver);
  }
  }
  看粗體部分,this.getClass()方法可以得到了當前類的Class對象,也可以用ParseProperties.class.getClass()方法來實現同樣的效果。之後調用其getResourceAsStream("database.propertIEs")方法來解析配置文件。getResourceAsStream()方法解析文件時候的相對路徑是當前類的包路徑。
  
  就當前的包來說,zy.pro.sc.db對應的路徑是src/zy/pro/sc/db。由於我們要解析的文件和解析類在同一目錄下,所以我們的路徑是"database.propertIEs"。
  
  如果我們的解析文件和解析類不在同一目錄下呢,如以下目錄結構:
  

  那麼先看一下我們解析類的代碼:
  
  InputStream is=this.getClass().getResourceAsStream("/database.propertIEs");
  
  解析路徑變成了"/database.properties", “/“表示取當前類所在的包的根路徑下的database.properties文件,也就是相對於ParsePropertie.class的包的根路徑下的 database.propertIEs文件。
  
  用這種方法更有靈活性。此地要認真體會。不用這種方法,你的解析類只能在目錄結構不發生改變的情況下使用。否則將發生異常。例如:你的解析類在servlet中調用的時候就會拋出找不到文件的異常。
  
  此路徑的定位方法也可以使用於解析XML的文件。詳細情況同上。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved