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檔案
相關文章
- Symbian中操作ini檔案
- java 讀寫 ini 配置檔案Java
- asp.net 操作INI配置檔案類ASP.NET
- .NET程式配置檔案操作(ini,cfg,config)
- Python 使用ConfigParser操作ini配置檔案教程。Python
- JAVA 操作檔案Java
- java 檔案操作Java
- NPM酷庫047:ini,解析INI配置檔案NPM
- Java檔案操作 讀寫操作Java
- Java 檔案 IO 操作Java
- Java操作Excel檔案JavaExcel
- java檔案操作大全Java
- VB原始碼推薦:一個操作Ini檔案的類 (轉)原始碼
- MySql5.7配置檔案my.ini 設定 my.ini檔案路徑MySql
- php.ini 檔案在哪裡?PHP
- Mysql 配置檔案 my.iniMySql
- IIS不能下載ini檔案
- 建立與讀取.ini檔案
- c#讀寫ini檔案C#
- VB讀寫ini檔案 (轉)
- winform c#寫ini檔案ORMC#
- delphi讀取ini檔案 (轉)
- MySQL檔案my.ini配置MySql
- go 讀取.ini配置檔案Go
- JAVA檔案操作知識Java
- Java : File 檔案類操作Java
- 程式執行資訊的非登錄檔儲存類(ini 檔案操作類) (轉)
- 神祕的.user.ini檔案
- MySQL配置檔案my.ini在哪MySql
- ini檔案解析c庫(iniparser)【轉】
- python ini 配置檔案處理Python
- mysql--my.ini配置檔案配置MySql
- VB.NET 讀寫ini檔案
- C#讀取ini配置檔案C#
- Symbian中ini檔案的使用
- 使用C#讀寫ini檔案C#
- PHP獲取和操作配置檔案php.ini的幾個函式PHP函式
- Java 檔案 IO 操作之 DirectIOJava