JAVA 使用相對路徑讀取文件方法羅列

轉自:http://blog.csdn.net/yiluoak_47/article/details/7760385

java 使用相對路徑讀取文件

1.java project環境,使用java.io用相對路徑讀取文件的例子:
 *目錄結構:
  DecisionTree
            |___src
                 |___com.decisiontree.SamplesReader.java
            |___resource
                 |___train.txt,test.txt
 *SamplesReader.java:
  String filepath="resource/train.txt";//注意filepath的內容;
  File file=new File(filepath);
  ……

 *我們留意filepath的內容,java.io默認定位到當前用戶目錄("user.dir")下,即:工程根目

錄"D:\DecisionTree"下,因此,此時的相對路徑(以user.dir爲基路徑的路徑)爲"resource/train.txt"

。這樣,JVM就可以根據"user.dir"與"resource/train.txt"得到完整的路徑(即絕對路

徑)"D:\DecisionTree\resource\train.txt",從來找到train.txt文件。

 *注意:相對路徑的起始處無斜杆"/";例如:
filepath="resource/train.txt";
而不是filepath="/resource/train.txt"; //error!

2、javaEE環境,使用Classloader用相對路徑讀取xml的例子:
 *參見之前寫的文章“通過虛擬路徑或相對路徑讀取一個xml文件,避免硬編碼”。

 *內容如下:
 java使用相對路徑讀取xml文件:
一、xml文件一般的存放位置有三個:
1.放在WEB-INF下;
2.xml文件放在/WEB-INF/classes目錄下或classpath的jar包中;
3.放在與解析它的java類同一個包中,不一定是classpath;

二、相對應的兩種使用相對路徑的讀取方法:

方法一:(未驗證)
將xml文件放在WEB-INF目錄下,然後
程序代碼:
InputStream is=getServletContext().getResourceAsStream( "/WEB-INF/xmlfile.xml" );

方法二:將xml文件放在/WEB-INF/classes目錄下或classpath的jar包中,則可以使用ClassLoader的靜態

方法getSystemResourceAsStream(String s)讀取;
程序代碼:
String s_xmlpath="com/spf/web/ext/hotspot/hotspotxml/hotspot.xml";
InputStream in=ClassLoader.getSystemResourceAsStream(s_xmlpath);

方法三:xml在隨意某個包路徑下:
String s_xmlpath="com/spf/web/ext/hotspot/hotspotxml/hotspot.xml";
ClassLoader classLoader=HotspotXmlParser.class.getClassLoader();
InputStream in=classLoader.getResourceAsStream(s_xmlpath);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章