java中獲得當(dāng)前文件路徑多種方法
String path="";
try {
path=new File(getClass().getClassLoader().getResource("").toURI()).getPath();
}catch (URISyntaxException ex) {}
return path;
}
取程序運(yùn)行時(shí)的目錄路徑。即程序在那里雙擊或BAT文件所在的路徑
第一種:
System.out.println(f);
結(jié)果:
獲取當(dāng)前類的所在工程路徑;
如果不加“/”
System.out.println(f);
結(jié)果:
獲取當(dāng)前類的絕對(duì)路徑;
第二種:
String courseFile = directory.getCanonicalPath() ;
System.out.println(courseFile);
結(jié)果:
獲取當(dāng)前類的所在工程路徑;
第三種:
System.out.println(xmlpath);
結(jié)果:
file:/C:/Documents%20and%
獲取當(dāng)前工程src目錄下selected.txt文件的路徑
第四種:
結(jié)果:
獲取當(dāng)前工程路徑
第五種:
結(jié)果:
獲取當(dāng)前工程路徑
絕對(duì)路徑和相對(duì)路徑:
絕對(duì)路徑就是你的主頁(yè)上的文件或目錄在硬盤(pán)上真正的路徑,(URL和物理路徑)例如:C:xyz
est.txt 代表了test.txt文件的絕對(duì)路徑。http://www.111cn.net 也代表了一個(gè)URL絕對(duì)
路徑。相對(duì)路徑:相對(duì)與某個(gè)基準(zhǔn)目錄的路徑。包含Web的相對(duì)路徑(HTML中的相對(duì)目錄)
,例如:在Servlet中,"/"代表Web應(yīng)用的跟目錄。和物理路徑的相對(duì)表示。例如:"./" 代
表當(dāng)前目錄,"../"代表上級(jí)目錄。這種類似的表示,也是屬于相對(duì)路徑。另外關(guān)于URI,
URL,URN等內(nèi)容,請(qǐng)參考RFC相關(guān)文檔標(biāo)準(zhǔn)。RFC 2396: Uniform Resource Identifiers
(URI): Generic Syntax
[以上摘自:http://www.111cn.net/jsp/Java/39141.htm]
它們的區(qū)別如下:
package:當(dāng)你在建立一個(gè)package時(shí),它自動(dòng)建立到source folder下,也只能建立在這個(gè)目錄之下.
source folder:存放java源代碼的文件夾,當(dāng)然也包括一些package文件夾,還可以包含其他文件.
項(xiàng)目構(gòu)建后,source folder里面的java自動(dòng)編譯成class文件到相應(yīng)的bin文件夾中,其他文件也會(huì)移到到相應(yīng)的目錄下.
folder:里面可以放入任何文件.包括java源文件,jar文件,其他文件(例如,圖片,聲音等).在此我說(shuō)明一下,如果里面含有java源文件,不管程序是否正確,eclipse都不會(huì)報(bào)錯(cuò),把它們當(dāng)做普通文件處理.但是項(xiàng)目如果要使用這里面的文件,情況就不同了.
以上摘自csdn論壇某大神的解釋,深表贊同。
此外,一旦你將某個(gè)路徑(比如配置文件路徑:src/configrations)設(shè)置為source folder,那么,需要引用到configurations下配置文件的其他地方在引用文件時(shí)就不能寫(xiě)全路徑(如:“/configurations/XXX.properties”),而應(yīng)該直接寫(xiě)“/XXX.properties”。