java web項目中 獲取resource路徑下的文件路徑


java web項目中 獲取resource路徑下的文件路徑

 

public GetResource{

  String path = GetResource.class.getClassLoader().getResource("xx/xx.txt").getPath();

}

 

----------擴展

一 相對路徑的獲得
   說明:相對路徑(即不寫明時候到底相對誰)均可通過以下方式獲得(不論是一般的java項目還是web項目)
  

    String relativelyPath=System.getProperty("user.dir");


   上述相對路徑中,java項目中的文件是相對於項目的根目錄
   web項目中的文件路徑視不同的web服務器不同而不同(tomcat是相對於 tomcat安裝目錄/bin)
二 類加載目錄的獲得(即當運行時某一類時獲得其裝載目錄)
   1.1)通用的方法一(不論是一般的java項目還是web項目,先定位到能看到包路徑的第一級目錄)
   
   InputStream is=TestAction.class.getClassLoader().getResourceAsStream("test.txt");


   (test.txt文件的路徑為 項目名/src/test.txt;類TestAction所在包的第一級目錄位於src目錄下)
   
   上式中將TestAction,test.txt替換成對應成相應的類名和文件名字即可
   1.2)通用方法二 (此方法和1.1中的方法類似,不同的是此方法必須以'/'開頭) 
   InputStream is=Test1.class.getResourceAsStream("/test.txt"); 
   (test.txt文件的路徑為 項目名/src/test.txt,類Test1所在包的第一級目錄位於src目錄下)
   
三 web項目根目錄的獲得(發布之后)
   1 從servlet出發
   可建立一個servlet在其的init方法中寫入如下語句

 

   ServletContext s1=this.getServletContext();
   String temp=s1.getRealPath("/"); (關鍵)


   結果形如:D:/工具/Tomcat-6.0/webapps/002_ext/ (002_ext為項目名字)
   如果是調用了s1.getRealPath("")則輸出D:/工具/Tomcat-6.0/webapps/002_ext(少了一個"/")
   2 從httpServletRequest出發

 

   String cp11111=request.getSession().getServletContext().getRealPath("/");


   結果形如:D:/工具/Tomcat-6.0/webapps/002_ext/
四 classpath的獲取(在Eclipse中為獲得src或者classes目錄的路徑)
   方法一

 

Thread.currentThread().getContextClassLoader().getResource("").getPath();

 

eg:
   String t=Thread.currentThread().getContextClassLoader().getResource("").getPath();
   System.out.println("t---"+t);
   輸出:t---/E:/order/002_ext/WebRoot/WEB-INF/classes/
  
   方法二

 

JdomParse.class.getClassLoader().getResource("").getPath() (JdomParse為src某一個包中的類,下同)


   eg:

String p1=JdomParse.class.getClassLoader().getResource("").getPath();
   System.out.println("JdomParse.class.getClassLoader().getResource--"+p1);


   輸出: JdomParse.class.getClassLoader().getResource--/E:/order/002_ext/WebRoot/WEB-INF/classes/
  另外,如果想把文件放在某一包中,則可以 通過以下方式獲得到文件(先定位到該包的最后一級目錄)
   eg String p2=JdomParse.class.getResource("").getPath(); 
   System.out.println("JdomParse.class.getResource---"+p2);
   輸出: JdomParse.class.getResource---/E:/order/002_ext/WebRoot/WEB-INF/classes/jdom/ (JdomParse為src目錄 下 jdom包中的類)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM