Ⅰ java中如何得到文件路徑
java文件中獲得路徑
Thread.currentThread().getContextClassLoader().getResource("") //獲得資源文件(.class文件)所在路徑
ClassLoader.getSystemResource("")
Class_Name.class.getClassLoader().getResource("")
Class_Name.class .getResource("/")
Class_Name.class .getResource("") // 獲得當前類所在路徑
System.getProperty("user.dir") // 獲得項目根目錄的絕對路徑
System.getProperty("java.class.path") //得到類路徑和包路徑
列印輸出依次如下:
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/com/xml/imp/
F:\work_litao\uri_test
F:\work_litao\uri_test\WebContent\WEB-INF\classes;F:\work_litao\uri_test\WebContent\WEB-INF\lib\dom4j.jar
Ⅱ 用java 如何讀取配置文件(如:資源文件)中配
java讀取配置文件的幾種方法如下:
方式一:採用ServletContext讀取,讀取配置文件的realpath,然後通過文件流讀取出來。因為是用ServletContext讀取文件路徑,所以配置文件可以放入在web-info的classes目錄中,也可以在應用層級及web-info的目錄中。文件存放位置具體在eclipse工程中的表現是:可以放在src下面,也可放在web-info及webroot下面等。因為是讀取出路徑後,用文件流進行讀取的,所以可以讀取任意的配置文件包括xml和properties。缺點:不能在servlet外面應用讀取配置信息。
方式二:採用ResourceBundle類讀取配置信息,
優點是:可以以完全限定類名的方式載入資源後,直接的讀取出來,且可以在非Web應用中讀取資源文件。缺點:只能載入類classes下面的資源文件且只能讀取.properties文件。
方式三:採用ClassLoader方式進行讀取配置信息
優點是:可以在非Web應用中讀取配置資源信息,可以讀取任意的資源文件信息
缺點:只能載入類classes下面的資源文件。
方法4 getResouceAsStream
XmlParserHandler.class.getResourceAsStream 與classloader不同
使用的是當前類的相對路徑
Ⅲ java資源文件
(一)用Class類載入資源文件
通過調用Class類的getResourceAsStream方法來載入資源文件:
public InputStream getResourceAsStream(String pathToConfigFile);
該方法接收一個String類型的參數(pathToConfigFile)來表示資源文件的地址,如果載入成功,則返回該資源文件的輸入流(InputStream),如果失敗,則返回null。重要的是,在傳入pathToConfigFile參數時,有兩種方式,第一種方式為絕對定位方式,即pathToConfigFile以"/"開頭,此時Java以classpath為根目錄,直接加上pathToConfigFile來搜索資源文件。第二種方式為相對定位方式,即pathToConfigFile不以"/"開頭,此時資源文件的全路徑應該為:調用getResourceAsStream方法的類的package路徑加上pathToConfigFile。(在將package轉為目錄時將"."變成"/")
舉個例子,在IntelliJ Idea中創建一個java工程,目錄結構如下:
name=ConfigUnderSrc
Ⅳ java獲取指定資源文件路徑的幾種方法
你好,提問者:
指定資源路徑的方法有兩種:
一種是絕對路徑,一種是相對路徑。
獲取當前類的所在工程路徑;
Filef=newFile(this.getClass().getResource("/").getPath());
System.out.println(f);
獲取當前類的絕對路徑;
Filef=newFile(this.getClass().getResource("").getPath());
System.out.println(f);
獲取當前類的所在工程路徑;
Filedirectory=newFile("");//參數為空
StringcourseFile=directory.getCanonicalPath();
System.out.println(courseFile);
獲取當前工程src目錄下selected.txt文件的路徑:
URLxmlpath=this.getClass().getClassLoader().getResource("selected.txt");
System.out.println(xmlpath);
Ⅳ JAVA 載入資源文件的問題
1.
這一句指定的文件的名字,也就是SysConstants這個類中存在一個叫做SYS_PROPERTYNAME的變數,它的值就是sys.properties,也就是這樣的
public static String SYS_PROPERTYNAME="sys.properties",你想在載入sys2.properties文件,只需再增加public static String SYS_PROPERTYNAME2="sys2.properties",再用上面的load方法載入即可。也就是p.load(Tools.class.GetClassLoader().getResourceAsStream(SysCOnstants.SYS_PROPERTYNAME2));即可。
2.通過類裝載器來裝載資源文件,這樣就不必寫出資源文件的全路徑了。
3.載入後的資源文件你可以理解成一個map(類似),等號前邊的是key,等號後邊的是值。
Ⅵ 【Servlet】使用ServletContext進行共享數據、獲取初始化參數、請求轉發與讀取資源文件
ServletContext在JavaWeb開發中扮演著重要角色,它在Web容器啟動時為每個Web應用創建一個,代表當前應用的上下文環境。本文將介紹如何利用它進行數據共享、獲取初始化參數、請求轉發以及讀取資源文件。
在Servlet中保存的數據,可以通過ServletContext在其他Servlet中訪問。以下是實例測試:
測試中,通過直接請求/g,如果沒有存入數據,結果將為null。請求/h後,HelloServlet的數據存儲生效,再次請求/g,可以驗證數據共享功能。
在web.xml中配置應用的初始化參數,然後在相關類中獲取這些參數。以下是測試代碼和效果:
TestRequestDispatcher類通過web.xml的映射,實現了請求的轉發。具體代碼如下:
資源文件如db.properties,通過類進行讀取。web.xml中進行配置,測試時注意資源文件存放位置的特殊需求。
若需在非resources目錄配置文件,可參考之前文章的相關內容。