新聞中心
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中,我們可以使用多種方法來讀取配置文件,如使用java.util.Properties類、java.io.FileInputStream類和java.io.BufferedReader類等,下面我們詳細(xì)介紹這幾種方法。

1、使用java.util.Properties類
java.util.Properties類是Java提供的一個用于處理配置文件的類,它可以將配置文件中的鍵值對存儲在一個Map對象中,方便我們通過鍵來獲取對應(yīng)的值,以下是一個使用java.util.Properties類讀取配置文件的示例:
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);
}
}
在這個示例中,我們首先創(chuàng)建了一個Properties對象,然后使用FileInputStream類讀取名為config.properties的配置文件,接著,我們調(diào)用properties.load()方法將配置文件中的鍵值對加載到Properties對象中,我們通過properties.getProperty()方法獲取配置文件中的鍵值對,并輸出到控制臺。
2、使用java.io.FileInputStream類和java.io.BufferedReader類
除了使用java.util.Properties類外,我們還可以使用java.io.FileInputStream類和java.io.BufferedReader類來逐行讀取配置文件,這種方法適用于配置文件中的每一行都是一個鍵值對的情況,以下是一個使用這兩種類讀取配置文件的示例:
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());
}
}
}
在這個示例中,我們首先創(chuàng)建了一個HashMap對象來存儲配置文件中的鍵值對,我們使用FileInputStream類和BufferedReader類逐行讀取配置文件,并將每一行的內(nèi)容分割成鍵和值,然后將它們添加到HashMap對象中,我們遍歷HashMap對象并輸出其中的鍵值對。
常見問題與解答
1、問題:如何設(shè)置配置文件的編碼格式?
答案:java.util.Properties類默認(rèn)使用的是系統(tǒng)默認(rèn)的編碼格式,如果配置文件的編碼格式不是系統(tǒng)默認(rèn)的編碼格式,我們需要在創(chuàng)建Properties對象時指定編碼格式,如果配置文件的編碼格式是UTF-8,我們可以這樣創(chuàng)建Properties對象:
Properties properties = new Properties();
properties.setProperty("fileEncoding", "UTF-8"); // 設(shè)置編碼格式為UTF-8
try {
properties.load(new FileInputStream("config")); // 加載配置文件,注意這里的"config"需要替換為實際的文件名或路徑,且不需要加"config"后面的引號和后綴名"properties",因為Java會根據(jù)后綴名自動識別文件類型,new FileInputStream("C:test\config"),這里就直接傳入了文件路徑而沒有寫成"config",否則會報錯!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"type not found"錯誤,所以一定要注意這點(diǎn)啊~_~,另外要注意的是這個屬性并不影響程序運(yùn)行,只是為了讓某些不支持UTF-8編碼的程序也能正常讀取該配置文件而已,如果你想讓程序強(qiáng)制使用UTF-8編碼讀取該配置文件,你可以使用如下代碼:System.setProperty("fileEncoding","UTF-8");但是這種方式只會影響當(dāng)前Java進(jìn)程的所有程序,不會影響其他JVM進(jìn)程或其他操作系統(tǒng)上的Java程序。
分享題目:java如何讀取配置文件內(nèi)容
當(dāng)前鏈接:http://www.dlmjj.cn/article/dhpsgho.html


咨詢
建站咨詢
