Ⅰ javaWeb項目如何獲取文件路徑
一、利用Servlet獲取文件路徑
1、獲取項目的絕對路徑
通過`getServletContext().getRealPath("/")`實現,得到的是項目的絕對路徑。
2、獲取瀏覽器地址
通過`request.getRequestURL()`獲取當前請求的URL。
3、獲取當前文件的絕對路徑
通過`new File(request.getServletContext().getRealPath("/"))`創建文件對象,調用`getAbsolutePath()`方法獲取文件的絕對路徑。
二、使用JSP獲取文件路徑
1、獲取文件的絕對路徑
例如在`index.jsp`頁面中,通過`request.getServletContext().getRealPath("file_name")`獲取文件的絕對路徑。
2、獲取訪問的servlet路徑
通過`request.getRequestURI()`獲取請求的完整路徑。
3、獲取當前jsp頁面的訪問路徑
通過`request.getRequestURL()`獲取當前jsp頁面的訪問路徑。
4、獲取當前頁面的路徑
通過`new File(request.getServletPath()).getAbsolutePath()`獲取當前jsp頁面的路徑。
三、使用Java類獲取文件路徑
1、獲取Eclipse路徑
通過`new File("E:/").getAbsolutePath()`獲取Eclipse安裝目錄。
2、獲取當前的classpath路徑
通過`System.getProperty("java.class.path")`獲取當前類載入器的類路徑。
Ⅱ java獲取項目resource路徑(javaweb獲取項目路徑)
幾種獲取resources目錄下的文件方式一般我們的配置信息默認都是會配置在/src/main/resources/application.properties(或者application.yml)文件中,當然,也可以在resources文件夾下添加自己的配置文件,甚至子目錄中添加自己的配置文件,那麼我們又該如何讀取自己添加的配置文件中的內容呢?
我們先定義一個公共的輸出配置信息的方法如下:
這里是通過java.util下的Properties類來獲取配置文件中的屬性
添加自定義的配置文件,在resources目錄下添加子目錄config並添加配置文件db.properties
內容如下:
在java中,resources文件夾下的文件在編譯後,都是為根目錄(classpath)。接下來,准備採用以下的6種方式進行配置內容的讀取
在springboot項目我還可以使用如下的方式:
springboot項目中使用
springboot項目中使用
springboot項目中使用,通過@Value註解,但是我們還需要通過@PropertySource("classpath:config/db.properties")
註解指定配置文件的路徑,如果是默認的配置文件,如:application.properties(.yml)就不需要指定路徑
通過上述6種方法都可以成功獲取到自定義配置文件中的配置信息,如果大家還有更好的方式,可以評論區留言。
java怎麼獲取resources下的文件路徑
1.讀取本地的xml文件,需要注意對應的路徑
//讀取xml文件,xmlFile為讀取文件的路徑DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance;DocumentBuilderbuilder=factory.newDocumentBuilder;Documentdocument=builder.parse(xmlFile);NodeListnodeList=document.getElementsByTagName(thisTag);//指定標簽(thisTag)的節點集合for(itni=0;inodeList.getLength;i++){//循環獲取每個節點信息Nodenode=nodeList.item(i);NamedNodeMapattributes=node.getAttributes;for(intj=0;jattributes.getLength;j++){Nodeattribute=attributes.item(j);System.out.println(attribute.getNodeName+":"+attribute.getNodeValue);}}
注意:getElementsByTagName方法只是屬於document與Element的方法
所以,當針對某個Node查找對應的節點時,需要先強制轉換為Element
ElementnodeToElement=(Element)node;NodeListosNodeList=nodeToElement.getElementsByTagName(thisTag);//thisTag為指定標簽
2.讀取txt文件
一般的數據存儲都是鍵值對的方式在文件中記錄,開發人員多是根據已知的鍵,從文件中取得對應的值。
例如Config.txt中內容為:
name=jack
sex=boy
要從java程序中讀取該文件的內容
Fileconfig_file=newFile("./Config");//此處使用相對路徑Stringconfig_file_fullpath=config_file.getAbsoluteFile.toString;readConfigconfig=newreadConfig(config_file_fullpath);Stringname=config.get("name");//name為jack//對獲取的數據進行處理//...
3.讀取.csv文件
csv文件一般為表格,是多行多列的數據,列對應相應不同的屬性,java實現逐行讀取每列單元格的值。
如何在java中獲取當前項目的路徑很多朋友都想了解java如何獲取當前項目的路徑?下面就一起來了解一下吧~
在jsp和class文件中調用的相對路徑不同。
在jsp里,根目錄是WebRoot
在class文件中,根目錄是WebRoot/WEB-INF/classes也可以選用System.getProperty("user.dir")獲取工程的絕對路徑。
1.jsp中取得路徑:
以工程名為TEST為例:
(1)得到包含工程名的當前頁面全路徑:request.getRequestURI()結果:/TEST/test.jsp(2)得到工程名:request.getContextPath()結果:/TEST(3)得到當前頁面所在目錄下全名稱:request.getServletPath()結果:如果頁面在jsp目錄下?/TEST/jsp/test.jsp(4)得到頁面所在伺服器的全路徑:application.getRealPath("頁面.jsp")結果:D:esinwebappsTESTest.jsp(5)得到頁面所在伺服器的絕對路徑:absPath=new?java.io.File(application.getRealPath(request.getRequestURI())).getParent();結果:D:esinwebappsTEST
2.在class類中取得路徑:
(1)類的絕對路徑:Class.class.getClass().getResource("/").getPath()結果:/D:/TEST/WebRoot/WEB-INF/classes/pack/(2)得到工程的路徑:System.getProperty("user.dir")結果:D:TEST
3.在Servlet中取得路徑:(1)得到工程目錄:request.getSession().getServletContext().getRealPath("")?參數可具體到包名。結果:E:TomcatwebappsTEST(2)得到IE地址欄地址:request.getRequestURL()結果:(3)得到相對地址:request.getRequestURI()結果:/TEST/test
java中類載入路徑和項目根路徑獲取有幾種方式?package?my;??
??
import?java.io.File;??
import?java.io.IOException;??
import?java.net.URL;??
??
public?class?MyUrlDemo?{??
??
??????
????public?static?void?main(String[]?args)?{??
????????MyUrlDemo?muDemo?=?new?MyUrlDemo();??
????????try?{??
????????????muDemo.showURL();??
????????}?catch?(IOException?e)?{??
????????????//?TODO?Auto-generated?catch?block??
????????????e.printStackTrace();??
????????}??
????}
public?void?showURL()?throws?IOException?{??
??????????
????????//?第一種:獲取類載入的根路徑???D:git ie ie argetclasses??
????????File?f?=?new?File(this.getClass().getResource("/").getPath());??
????????System.out.println(f);??
??
????????//?獲取當前類的所在工程路徑;?如果不加「/」??獲取當前類的載入目錄??D:git ie ie argetclassesmy??
????????File?f2?=?new?File(this.getClass().getResource("").getPath());??
????????System.out.println(f2);??
??
????????//?第二種:獲取項目路徑????D:git ie ie??
????????File?directory?=?new?File("");//?參數為空??
????????String?courseFile?=?directory.getCanonicalPath();??
????????System.out.println(courseFile);??
??????????
??
????????//?第三種:??file:/D:/git/tie/tie/target/classes/??
????????URL?xmlpath?=?this.getClass().getClassLoader().getResource("");??
????????System.out.println(xmlpath);??
??????
??
????????//?第四種:?D:git ie ie??
????????System.out.println(System.getProperty("user.dir"));??
????????/*?
?????????*?結果:?C:Documents?and??
?????????*?獲取當前工程路徑?
?????????*/??
??
????????//?第五種:??獲取所有的類路徑?包括jar包的路徑??
????????System.out.println(System.getProperty("java.class.path"));??
??????????
????}??
}