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"));
}
}
- 浏览: 73689 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (108)
- 数据库 (6)
- web前端 (13)
- java基础 (29)
- XML (3)
- CSS (1)
- JQuery (2)
- 杂谈 (1)
- struts2 (1)
- 配置 (2)
- 系统 (1)
- javaScript (1)
- tomcat (2)
- maven (5)
- jxl (1)
- spring (6)
- JAX-RS (2)
- servlet-api (1)
- js (1)
- itext (1)
- 面试 (4)
- java自定义注解 (1)
- jsp (3)
- linux (4)
- eclipse (1)
- ftp (1)
- 受益匪浅 (5)
- redis (5)
- java优化 (1)
- protobuf (1)
- virtualbox (1)
- 操作系统 (1)
- 异常 (1)
最新评论
发表评论
-
java try catch finally 语句中return执行情况
2015-04-17 11:43 415对于含有return语句的情况,这里我们可以简单地总结如下: ... -
Java 接口(interface)的用途和好处
2014-11-17 16:02 1352http://write.blog.csdn.net/pos ... -
java 中getDeclaredFields() 与getFields() 的区别
2014-10-28 16:51 813java 中getDeclaredFields() 与get ... -
Java程序执行Linux命令
2014-09-10 10:59 1143java程序中要执行linux命 ... -
java实现http下载
2014-08-22 17:01 393/** * 通过http下载文件 * @para ... -
Java线程(四):线程中断、线程让步、线程睡眠、线程合并
2014-08-19 14:21 728本文来自:高爽|Coder,原文地址:http://b ... -
JAVA反射与注解实例
2014-08-18 14:01 379JAVA反射与注解实例 1 JAVA反射机制 JA ... -
Java中hashcode的理解
2014-08-05 15:38 527转:http://blog.csdn.net/chi ... -
java判断是否是exe文件
2014-07-15 13:23 976public static int myReadFileI ... -
java常用设计模式
2014-07-11 14:00 451设计模式;一个程序 ... -
Java里Stream (byte 流)的主要类
2014-07-04 11:35 559Java里Stream (byte 流)的主要类 2 ... -
Java Reflection(反射机制)
2014-07-04 09:57 336Java 反射机制 反射机制简介 反射机制应用示例 ... -
java中的一些基础知识实例
2014-07-03 17:41 3621> java中验证ip的格式 Pa ... -
java split分解特殊字符 | .
2014-06-12 14:45 3761、如果用“.”作为分隔的话,必须是如下写法:String. ... -
java 多线程例子
2014-06-12 14:15 539转:http://blog.csdn.net/ocean20 ... -
Java 内部类
2014-05-29 11:57 407Java 内部类 分四种: ... -
运行时异常与一般异常有何异同
2014-05-29 11:40 354Throwable 是所有 Java 程序中错误处理的父 ... -
java调用打印机
2014-05-20 15:21 939/** * 打印(rt.jar javax ... -
java io 多种文件操作方式(字节、字符、行、随机)
2013-07-09 09:20 783一、多种方式读文件内容。【参考:http://www.ibm ... -
通过Java反射动态获取信息
2013-06-07 13:26 483public static Car getCarInfo() ...
相关推荐
Java 操作 Ini 文件 在 Java 开发中,我们经常需要处理各种配置文件,其中 INI 文件是一种常见的格式,用于存储程序的配置参数。INI 文件以其简单明了的结构被广泛应用于 Windows 平台,但在其他操作系统中也有所...
在Java中,虽然标准库并未提供直接操作Ini文件的API,但我们可以自定义类来实现 Ini文件的读写功能。这个类通常会依赖于正则表达式来解析和构建Ini文件的内容。 在实现Ini文件操作的Java类时,以下是一些关键知识点...
在Java中,虽然没有内置的Ini文件处理库,但我们可以借助第三方库如JIniFile或者Apache Commons Configuration来实现读写Ini文件的功能。 首先,让我们了解Ini文件的基本结构。Ini文件由多个节(Section)组成,每...
在Java中读取Ini文件,我们可以按照以下步骤操作: 1. **打开文件**:使用`java.io.File`类创建一个表示Ini文件的对象,然后通过`java.io.FileInputStream`打开文件。确保文件路径正确,可以访问到。 ```java File...
本篇我们将深入探讨如何使用Java有效地读取包含中文字符的INI文件,并通过提供的`IniReader.java`源代码进行实例解析。 首先,我们要了解INI文件的基本结构。INI文件由一系列的节(Section)组成,每个节下面可以有...
在这个Java项目中,开发者创建了一个功能,使得程序能够读取、写入和管理INI文件,同时结合了Swing组件来提供用户界面,使得用户可以直接在图形界面上进行文件操作。 1. **INI文件结构**: INI文件由键值对组成,...
虽然Java标准库没有内置对Ini文件的直接支持,但可以通过第三方库来实现读取和操作Ini文件的功能。在这个场景中,我们有一个名为“java读取ini文件jar”的压缩包,它包含了一个示例,帮助开发者了解如何在Java中读取...
在Java中,由于标准库并未提供直接处理Ini文件的API,因此开发者通常需要自定义类或使用第三方库来实现Ini文件的操作。本篇文章将深入探讨如何用Java实现一个 Ini文件处理类,主要涉及以下几个知识点: 1. **Ini...
在Java中,由于标准库并未直接支持INI文件的操作,通常我们需要借助第三方库来实现读写功能。本项目就是一个关于如何使用Java读写INI文件的小例子。 首先,我们需要一个第三方库,如JIni库,它可以方便地进行INI...
本篇将深入探讨如何使用Java来读取和操作INI文件,同时介绍相关的编程概念和技术。 首先,我们来看标题"JAVA写的读取ini文件",这表明我们将使用Java语言来实现对INI文件的读取。为了完成这个任务,我们需要创建一...
4. **支持注释**:`ini4j`不仅处理键值对,还支持解析和操作INI文件中的注释行,这对于理解和维护配置文件非常有用。 5. **国际化支持**:对于多语言应用,`ini4j`可以处理包含不同语言版本的INI文件,通过指定语言...
一个常用的第三方库是`ini4j`,它提供了一个简洁的API来操作INI文件。 以下是一个简单的示例,展示了如何使用`ini4j`库读取INI文件: ```java import org.ini4j.Ini; import org.ini4j.Profile; import java.io....
《Java操作INI文件:org.dtools.javaini-v1.1.00源码解析》 在Java编程中,有时我们需要处理配置文件,其中INI文件是一种常见的格式,它以键值对的形式存储数据,通常用于存储软件的设置或配置信息。`org.dtools....
JAVA源码INI文件操作类库ini4j
"基于Java的INI文件操作类库 ini4j.zip" 指的是一款名为`ini4j`的Java类库,专门用于处理INI文件。INI文件是一种常见的配置文件格式,常用于存储软件的设置信息。`ini4j`提供了方便的API,使得在Java应用程序中读写...
然后,可以使用`Wini`类来读取和操作INI文件。例如: ```java Wini ini = new Wini(new File("cityid.ini")); Config config = ini.getConfig(); config.setMulti(true); // 允许同一键名有多个值 String ...
基于java的开发源码-INI文件操作类库 [ini4j].zip 基于java的开发源码-INI文件操作类库 [ini4j].zip 基于java的开发源码-INI文件操作类库 [ini4j].zip 基于java的开发源码-INI文件操作类库 [ini4j].zip 基于java的...
本篇将深入探讨如何在Java中读取和操作INI文件,以及相关工具的使用。 首先,Java标准库并没有直接支持读写INI文件的API,因此我们需要依赖第三方库或者自定义方法来实现这一功能。在给定的链接中,博主提供了有关...
java资源INI文件操作类库 [ini4j]提取方式是百度网盘分享地址
Java读写ini文件代码示例是一种常见的文件操作方式,ini文件是一种轻量级的配置文件格式,广泛应用于各种软件和系统中。Java语言可以通过多种方式来读写ini文件,本文将详细介绍Java读写ini文件代码示例。 Ini文件...