91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何找到當前文件路徑和如何讀取properties文件

發布時間:2020-07-30 16:07:34 來源:網絡 閱讀:399 作者:沙漏半杯 欄目:編程語言

1、如何找到當前java類的路徑 (LoadProperties是自定義的類)


①、LoadProperties.class.getResource(""):返回當前類LoadProperties.class文件的URI目錄。不包括自己!


②、 得到的是當前的classpath的絕對URI路徑。(以下四種方式皆是)


LoadProperties.class.getResource("/");


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


LoadProperties.class.getClassLoader().getResource("");


ClassLoader.getSystemResource("");


③、得到當前文件的系統路徑 (以下兩種皆是)


System.getProperty("user.dir");


new File("").getAbsolutePath()


/**

* 顯示當前文件的路勁

*/

public static void printCurrentDir(){

// 得到的是當前類FileTest.class文件的URI目錄。不包括自己!

System.out.println(LoadProperties.class.getResource(""));

// 得到的是當前的classpath的絕對URI路徑。(以下四種方式皆是)

System.out.println(LoadProperties.class.getResource("/"));

System.out.println(Thread.currentThread().getContextClassLoader().getResource(""));

System.out.println(LoadProperties.class.getClassLoader().getResource(""));

System.out.println(ClassLoader.getSystemResource(""));

// 得到當前文件的路徑

System.out.println(System.getProperty("user.dir"));

System.out.println(new File("").getAbsolutePath());

}





2、讀取properties文件


properties文件往往是用于存儲一些適合保存在本地的信息,這些信息不適合用作靜態變量,原因如果修改


這些變量,都會重新編譯執行,浪費時間。很多應用都用到了這種文件來保存本地信息,如struts.properties,


在國際化處理中,也常用到xx_zh.properties..等。


如何讀取呢?


①、使用java.lang.ClassLoader類的getSystemResourceAsStream()靜態方法,即通過系統類加載器加載到inputstream:


InputStream is = ClassLoader.getSystemResourceAsStream(path);


②、使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法,即通過當前類的類加載器加載到inputstream


InputStream is = LoadProperties.class.getClassLoader().getResourceAsStream(path);


③、使用class變量的getResourceAsStream()方法,


InputStream is =? LoadProperties.class.getResourceAsStream(path);


④、通過InputStream (文件流)方式直接讀入


InputStream is = new BufferedInputStream(new FileInputStream(path));


⑤、使用java.util.PropertyResourceBundle類的構造函數,該方式還是通過inputstream流讀入的


InputStream is = new BufferedInputStream(new FileInputStream(path));


ResourceBundle rb = new PropertyResourceBundle(is);


⑥、使用java.util.ResourceBundle類的getBundle()方法


ResourceBundle rb = ResourceBundle.getBundle("Test201308/message",Locale.getDefault());// 第一個參數為包名+properties文件的名字(不要加后綴)




代碼:


package Test201308;

?

import java.io.BufferedInputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.InputStream;

import java.text.MessageFormat;

import java.util.Iterator;

import java.util.Locale;

import java.util.Properties;

import java.util.PropertyResourceBundle;

import java.util.ResourceBundle;

?

public class LoadProperties {

// message.properties 和 LoadProperties.class在同級目錄

private static final String absolute_path = "Test201308/message.properties";

private static final String relative_path = "message.properties";

private static Properties p = new Properties();

private static Object key;

private static Object value;

/**

* 使用java.lang.ClassLoader類的getSystemResourceAsStream()靜態方法

*/

public static void loadBySystemResourceStream(){

String path = absolute_path;

InputStream is = ClassLoader.getSystemResourceAsStream(path);

try {

p.load(is);

print();

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* 使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法

*/

public static void loadByCurentClassLoader(){

InputStream is = LoadProperties.class.getClassLoader().getResourceAsStream(absolute_path);//message.properties在LoadProperties類同級目錄下

try {

p.load(is);

print();

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* 使用class變量的getResourceAsStream()方法

*/

public static void loadByCurrentClass(){

InputStream is =? LoadProperties.class.getResourceAsStream(relative_path);

try {

p.load(is);

print();

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* 通過InputStream 方式讀入

*/

public static void loadByInputSrtream(){

try {

String path = LoadProperties.class.getResource("")+relative_path;

InputStream is = new BufferedInputStream(new FileInputStream(path.substring(6)));// “file:/” 的長度是6

p.load(is);

print();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* 使用java.util.PropertyResourceBundle類的構造函數

*/

@SuppressWarnings("rawtypes")

public static void loadByPropertyResourceBundle(){

String path = System.getProperty("user.dir")+"/bin/"+absolute_path;

try {

InputStream is = new BufferedInputStream(new FileInputStream(path));

ResourceBundle rb = new PropertyResourceBundle(is);

// print?

Iterator it = rb.keySet().iterator();

for(;it.hasNext();){

key = it.next();

value =? rb.getObject(key.toString());

value = MessageFormat.format(value.toString(), new Object[]{"sb","NCBC"});

System.out.println("key:"+key+" value:"+value);

}

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* 使用java.util.ResourceBundle類的getBundle()方法

*/

@SuppressWarnings("rawtypes")

public static void loadByResourceBundle(){

ResourceBundle rb = ResourceBundle.getBundle("Test201308/message",Locale.getDefault());

// print?

Iterator it = rb.keySet().iterator();

for(;it.hasNext();){

key = it.next();

value = rb.getString(key.toString());

value = MessageFormat.format(value.toString(), new Object[]{"sb","NCBC"});

System.out.println("key:"+key+" value:"+value);

}

}

/**

* 打印顯示

*/

@SuppressWarnings("rawtypes")

public static void print(){

Iterator keys = p.keySet().iterator();

// 遍歷數據

while(keys.hasNext()){

key = (String)keys.next();

value = p.getProperty(key.toString());

value= MessageFormat.format(value.toString(), new Object[]{"sb","NCBC"});

System.out.println("key:"+key+" value:"+value);

}

}

/**

* 顯示當前文件的路勁

*/

public static void printCurrentDir(){

// 得到的是當前類FileTest.class文件的URI目錄。不包括自己!

System.out.println(LoadProperties.class.getResource(""));

// 得到的是當前的classpath的絕對URI路徑。(以下四種方式皆是)

System.out.println(LoadProperties.class.getResource("/"));

System.out.println(Thread.currentThread().getContextClassLoader().getResource(""));

System.out.println(LoadProperties.class.getClassLoader().getResource(""));

System.out.println(ClassLoader.getSystemResource(""));

// 得到當前文件的路徑

System.out.println(System.getProperty("user.dir"));

System.out.println(new File("").getAbsolutePath());

}

/**

* main 入口

* @param args

*/

public static void main(String[] args) {

printCurrentDir();

// 方式1 1

loadBySystemResourceStream();

// 方式2

loadByCurentClassLoader();

// 方式3 1

loadByCurrentClass();

// 方式4

loadByInputSrtream();

// 方式5

loadByPropertyResourceBundle();

// 方式6

loadByResourceBundle();

}

?

}


message.properties:

message = {0} says that message: {1}.



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长子县| 虞城县| 泊头市| 田林县| 克拉玛依市| 吕梁市| 拜泉县| 五河县| 新民市| 鸡西市| 乌拉特前旗| 丽江市| 崇阳县| 荆州市| 晋江市| 紫阳县| 大埔县| 穆棱市| 云龙县| 漠河县| 波密县| 塘沽区| 田阳县| 易门县| 乌审旗| 阜阳市| 钟祥市| 彭阳县| 宣武区| 禹州市| 彭州市| 台江县| 伽师县| 竹北市| 宣化县| 高雄县| 兴隆县| 台北市| 子长县| 分宜县| 灯塔市|