package netutel.service;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class OperateIni {
// section item value
private static Map<String, HashMap<String, String>> sectionsMap = new HashMap<String, HashMap<String, String>>();
// item value
private static HashMap<String, String> itemsMap = new HashMap<String, String>();
private static String currentSection = "";
/**
* Load data from target file
*
* @param file
* target file. It should be in ini format
*/
private static void loadData(File file) {
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(file));
String line = null;
while ((line = reader.readLine()) != null) {
line = line.trim();
if ("".equals(line))
continue;
if (line.startsWith("[") && line.endsWith("]")) {
// Ends last section
if (itemsMap.size() > 0
&& !"".equals(currentSection.trim())) {
sectionsMap.put(currentSection, itemsMap);
}
currentSection = "";
itemsMap = null;
// Start new section initial
currentSection = line.substring(1, line.length() - 1);
itemsMap = new HashMap<String, String>();
} else {
int index = line.indexOf("=");
if (index != -1) {
String key = line.substring(0, index);
String value = line.substring(index + 1, line.length());
itemsMap.put(key.trim(), value.trim());
}
}
// System.out.println(line);
}
if(line==null){
sectionsMap.put(currentSection, itemsMap);
}
reader.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
public static String getValue(String section, String item, File file) {
loadData(file);
HashMap<String, String> map = sectionsMap.get(section);
if (map == null) {
return "No such section:" + section;
}
String value = map.get(item);
if (value == null) {
return "No such item:" + item;
}
return value;
}
public static String getValue(String section, String item, String fileName) {
File file = new File(fileName);
return getValue(section, item, file);
}
public static List<String> getSectionNames(File file) {
List<String> list = new ArrayList<String>();
loadData(file);
Set<String> key = sectionsMap.keySet();
for (Iterator<String> it = key.iterator(); it.hasNext();) {
list.add(it.next());
}
return list;
}
public static Map<String, String> getItemsBySectionName(String section,
File file) {
loadData(file);
return sectionsMap.get(section);
}
public static void main(String[] args) {
// String str = getValue("SYSTEM","console_url","G:/scheduler.ini");
// System.out.println(str);
getSectionNames(new File("G:/scheduler.ini"));
}
}
java操作ini檔案
相關文章
- java 讀寫 ini 配置檔案Java
- Python 使用ConfigParser操作ini配置檔案教程。Python
- .NET程式配置檔案操作(ini,cfg,config)
- NPM酷庫047:ini,解析INI配置檔案NPM
- Java 檔案 IO 操作Java
- MySql5.7配置檔案my.ini 設定 my.ini檔案路徑MySql
- Mysql 配置檔案 my.iniMySql
- php.ini 檔案在哪裡?PHP
- python ini 配置檔案處理Python
- go 讀取.ini配置檔案Go
- MySQL檔案my.ini配置MySql
- pytest配置檔案pytest.ini
- JAVA檔案操作知識Java
- Java : File 檔案類操作Java
- ini檔案解析c庫(iniparser)【轉】
- 神祕的.user.ini檔案
- 使用C#讀寫ini檔案C#
- Python之ini配置檔案詳解Python
- MySQL配置檔案my.ini在哪MySql
- PHP獲取和操作配置檔案php.ini的幾個函式PHP函式
- Java 檔案 IO 操作之 DirectIOJava
- Java操作PDF檔案之ITextJava
- Java NIO Path介面操作檔案Java
- MySQL 配置檔案 (my.ini) 詳解MySql
- MySQL的my.ini檔案查詢MySql
- 透過python讀取ini配置檔案Python
- php.ini 檔案存放位置不對?PHP
- C#關於讀寫INI檔案C#
- PHP配置檔案詳解php.iniPHP
- Java審計之檔案操作漏洞Java
- java 檔案的操作(Path、Paths、Files)Java
- JAVA類檔案操作和異常Java
- 關於Java使用MinIO檔案伺服器操作檔案Java伺服器
- VC++學習筆記---配置檔案(一) ini檔案和propritiesC++筆記
- 利用.user.ini檔案隱藏後門
- 使用IniEditor讀寫INI型別配置檔案型別
- Java對檔案的操作及UDP,TCPJavaUDPTCP
- Mysql配置檔案my.ini配置項詳解MySql
- .user.ini檔案構成的PHP後門PHP