新聞中心
java,import java.io.FileInputStream;,import java.io.IOException;,import java.util.Properties;,,public class ReadConfig {, public static void main(String[] args) {, Properties prop = new Properties();, try {, FileInputStream in = new FileInputStream("config.properties");, prop.load(in);, in.close();, } catch (IOException ex) {, ex.printStackTrace();, }, String name = prop.getProperty("name");, System.out.println("name = " + name);, },},“Java讀取配置文件的方法
在Java中,我們可以使用多種方法來(lái)讀取配置文件,如使用java.util.Properties類(lèi)、java.io.FileInputStream類(lèi)和java.io.BufferedReader類(lèi)等,下面我們?cè)敿?xì)介紹這幾種方法。

1、使用java.util.Properties類(lèi)
java.util.Properties類(lèi)是Java提供的一個(gè)用于處理配置文件的類(lèi),它可以將配置文件中的鍵值對(duì)存儲(chǔ)在一個(gè)Map對(duì)象中,方便我們通過(guò)鍵來(lái)獲取對(duì)應(yīng)的值,以下是一個(gè)使用java.util.Properties類(lèi)讀取配置文件的示例:
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
public class ReadConfig {
public static void main(String[] args) {
Properties properties = new Properties();
try {
FileInputStream in = new FileInputStream("config.properties");
properties.load(in);
in.close();
} catch (IOException e) {
e.printStackTrace();
}
String key1 = properties.getProperty("key1");
String key2 = properties.getProperty("key2");
System.out.println("key1: " + key1 + ", key2: " + key2);
}
}
在這個(gè)示例中,我們首先創(chuàng)建了一個(gè)Properties對(duì)象,然后使用FileInputStream類(lèi)讀取名為config.properties的配置文件,接著,我們調(diào)用properties.load()方法將配置文件中的鍵值對(duì)加載到Properties對(duì)象中,我們通過(guò)properties.getProperty()方法獲取配置文件中的鍵值對(duì),并輸出到控制臺(tái)。
2、使用java.io.FileInputStream類(lèi)和java.io.BufferedReader類(lèi)
除了使用java.util.Properties類(lèi)外,我們還可以使用java.io.FileInputStream類(lèi)和java.io.BufferedReader類(lèi)來(lái)逐行讀取配置文件,這種方法適用于配置文件中的每一行都是一個(gè)鍵值對(duì)的情況,以下是一個(gè)使用這兩種類(lèi)讀取配置文件的示例:
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
public class ReadConfig {
public static void main(String[] args) {
Map configMap = new HashMap<>();
try {
FileInputStream in = new FileInputStream("config.properties");
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String line;
while ((line = reader.readLine()) != null) {
String[] keyValue = line.split("=");
if (keyValue.length == 2) {
configMap.put(keyValue[0].trim(), keyValue[1].trim());
}
}
reader.close();
in.close();
} catch (IOException e) {
e.printStackTrace();
}
for (Map.Entry entry : configMap.entrySet()) {
System.out.println("key: " + entry.getKey() + ", value: " + entry.getValue());
}
}
}
在這個(gè)示例中,我們首先創(chuàng)建了一個(gè)HashMap對(duì)象來(lái)存儲(chǔ)配置文件中的鍵值對(duì),我們使用FileInputStream類(lèi)和BufferedReader類(lèi)逐行讀取配置文件,并將每一行的內(nèi)容分割成鍵和值,然后將它們添加到HashMap對(duì)象中,我們遍歷HashMap對(duì)象并輸出其中的鍵值對(duì)。
常見(jiàn)問(wèn)題與解答
1、問(wèn)題:如何設(shè)置配置文件的編碼格式?
答案:java.util.Properties類(lèi)默認(rèn)使用的是系統(tǒng)默認(rèn)的編碼格式,如果配置文件的編碼格式不是系統(tǒng)默認(rèn)的編碼格式,我們需要在創(chuàng)建Properties對(duì)象時(shí)指定編碼格式,如果配置文件的編碼格式是UTF-8,我們可以這樣創(chuàng)建Properties對(duì)象:
Properties properties = new Properties();
properties.setProperty("fileEncoding", "UTF-8"); // 設(shè)置編碼格式為UTF-8
try {
properties.load(new FileInputStream("config")); // 加載配置文件,注意這里的"config"需要替換為實(shí)際的文件名或路徑,且不需要加"config"后面的引號(hào)和后綴名"properties",因?yàn)镴ava會(huì)根據(jù)后綴名自動(dòng)識(shí)別文件類(lèi)型,new FileInputStream("C:test\config"),這里就直接傳入了文件路徑而沒(méi)有寫(xiě)成"config",否則會(huì)報(bào)錯(cuò)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"type not found"錯(cuò)誤,所以一定要注意這點(diǎn)啊~_~,另外要注意的是這個(gè)屬性并不影響程序運(yùn)行,只是為了讓某些不支持UTF-8編碼的程序也能正常讀取該配置文件而已,如果你想讓程序強(qiáng)制使用UTF-8編碼讀取該配置文件,你可以使用如下代碼:System.setProperty("fileEncoding","UTF-8");但是這種方式只會(huì)影響當(dāng)前Java進(jìn)程的所有程序,不會(huì)影響其他JVM進(jìn)程或其他操作系統(tǒng)上的Java程序。
分享名稱(chēng):java如何讀取配置文件內(nèi)容
當(dāng)前網(wǎng)址:http://www.5511xx.com/article/dhpsgho.html


咨詢(xún)
建站咨詢(xún)
