`

java操作ini文件

 
阅读更多

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 操作 Ini 文件 在 Java 开发中,我们经常需要处理各种配置文件,其中 INI 文件是一种常见的格式,用于存储程序的配置参数。INI 文件以其简单明了的结构被广泛应用于 Windows 平台,但在其他操作系统中也有所...

    操作ini文件的类 java实现

    在Java中,虽然标准库并未提供直接操作Ini文件的API,但我们可以自定义类来实现 Ini文件的读写功能。这个类通常会依赖于正则表达式来解析和构建Ini文件的内容。 在实现Ini文件操作的Java类时,以下是一些关键知识点...

    Java 读写Ini文件

    在Java中,虽然没有内置的Ini文件处理库,但我们可以借助第三方库如JIniFile或者Apache Commons Configuration来实现读写Ini文件的功能。 首先,让我们了解Ini文件的基本结构。Ini文件由多个节(Section)组成,每...

    Java读取Ini文件

    在Java中读取Ini文件,我们可以按照以下步骤操作: 1. **打开文件**:使用`java.io.File`类创建一个表示Ini文件的对象,然后通过`java.io.FileInputStream`打开文件。确保文件路径正确,可以访问到。 ```java File...

    用java读取ini文件(支持中文)

    本篇我们将深入探讨如何使用Java有效地读取包含中文字符的INI文件,并通过提供的`IniReader.java`源代码进行实例解析。 首先,我们要了解INI文件的基本结构。INI文件由一系列的节(Section)组成,每个节下面可以有...

    Java写的关于INI文件读写,以及其它操作

    在这个Java项目中,开发者创建了一个功能,使得程序能够读取、写入和管理INI文件,同时结合了Swing组件来提供用户界面,使得用户可以直接在图形界面上进行文件操作。 1. **INI文件结构**: INI文件由键值对组成,...

    java读取ini文件jar

    虽然Java标准库没有内置对Ini文件的直接支持,但可以通过第三方库来实现读取和操作Ini文件的功能。在这个场景中,我们有一个名为“java读取ini文件jar”的压缩包,它包含了一个示例,帮助开发者了解如何在Java中读取...

    操作Ini文件的类 java实现

    在Java中,由于标准库并未提供直接处理Ini文件的API,因此开发者通常需要自定义类或使用第三方库来实现Ini文件的操作。本篇文章将深入探讨如何用Java实现一个 Ini文件处理类,主要涉及以下几个知识点: 1. **Ini...

    java读写ini文件

    在Java中,由于标准库并未直接支持INI文件的操作,通常我们需要借助第三方库来实现读写功能。本项目就是一个关于如何使用Java读写INI文件的小例子。 首先,我们需要一个第三方库,如JIni库,它可以方便地进行INI...

    JAVA写的读取ini文件

    本篇将深入探讨如何使用Java来读取和操作INI文件,同时介绍相关的编程概念和技术。 首先,我们来看标题"JAVA写的读取ini文件",这表明我们将使用Java语言来实现对INI文件的读取。为了完成这个任务,我们需要创建一...

    INI文件操作类库 [ini4j].7z

    4. **支持注释**:`ini4j`不仅处理键值对,还支持解析和操作INI文件中的注释行,这对于理解和维护配置文件非常有用。 5. **国际化支持**:对于多语言应用,`ini4j`可以处理包含不同语言版本的INI文件,通过指定语言...

    java读取INI文件

    一个常用的第三方库是`ini4j`,它提供了一个简洁的API来操作INI文件。 以下是一个简单的示例,展示了如何使用`ini4j`库读取INI文件: ```java import org.ini4j.Ini; import org.ini4j.Profile; import java.io....

    org.dtools.javaini-v1.1.00-src.7z

    《Java操作INI文件:org.dtools.javaini-v1.1.00源码解析》 在Java编程中,有时我们需要处理配置文件,其中INI文件是一种常见的格式,它以键值对的形式存储数据,通常用于存储软件的设置或配置信息。`org.dtools....

    JAVA源码INI文件操作类库ini4j

    JAVA源码INI文件操作类库ini4j

    基于Java的INI文件操作类库 ini4j.zip

    "基于Java的INI文件操作类库 ini4j.zip" 指的是一款名为`ini4j`的Java类库,专门用于处理INI文件。INI文件是一种常见的配置文件格式,常用于存储软件的设置信息。`ini4j`提供了方便的API,使得在Java应用程序中读写...

    java ini配置文件读取

    然后,可以使用`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的开发源码-INI文件操作类库 [ini4j].zip 基于java的...

    java读取ini文件

    本篇将深入探讨如何在Java中读取和操作INI文件,以及相关工具的使用。 首先,Java标准库并没有直接支持读写INI文件的API,因此我们需要依赖第三方库或者自定义方法来实现这一功能。在给定的链接中,博主提供了有关...

    java资源INI文件操作类库ini4j

    java资源INI文件操作类库 [ini4j]提取方式是百度网盘分享地址

    Java读写ini文件代码示例

    Java读写ini文件代码示例是一种常见的文件操作方式,ini文件是一种轻量级的配置文件格式,广泛应用于各种软件和系统中。Java语言可以通过多种方式来读写ini文件,本文将详细介绍Java读写ini文件代码示例。 Ini文件...

Global site tag (gtag.js) - Google Analytics