1. 程式人生 > >JavaWeb讀取資源文件的四種方式

JavaWeb讀取資源文件的四種方式

資源 加載 java pro ets nbsp fault 及其 ces

1. ServletContext

1. 調用getResourcesAsStream方法獲取輸入流, 相對於webroot, 不用加/
2. 讀取任何類型的文件
3. *只能在web環境下使用

InputStream in = this.getServletContext().getResourceAsStream("WEB-INF/classes/config/db.properties");

2. 類加載器

1. 相對於類路徑, 可以獲取類路徑下及其子包路徑下的資源文件
2. 可以用在非web環境下
3. 讀取任何類型的文件

InputStream in = ReadFileDemo2.class
.getResourceAsStream("/config/db.properties");

3. 流

1. 通過ServletContext的getRealPath方法獲取文件真實路徑, 然後操作文件流, 相對於webroot. 不用加/

String realPath = this.getServletContext().getRealPath("WEB-INF/classes/config/db.properties");

4. ResourceBundle

新建4個資源文件

1 my_en_US.properties:cancelKey=cancel
2 my_zh_CN.properties:cancelKey=\u53D6\u6D88(取消)
3 my_zh.properties:cancelKey=\u53D6\u6D88zh(取消zh) 4 my.properties:cancelKey=\u53D6\u6D88default(取消default)

使用ResourceBundle讀取資源文件

1 ResourceBundle bundle = ResourceBundle.getBundle("my", new Locale("zh", "CN"));
2 String cancel = bundle.getString("cancelKey");
3 System.out.println(cancel);

1. 可以用在非web環境下
2. 只能讀取類路徑中的properties文件

備註: ServletContext和流兩種方法的區別在於獲取流的方式不一樣

JavaWeb讀取資源文件的四種方式