`

用java读写ini配置文件的原因以及实现 示例

    博客分类:
  • Java
阅读更多

     import java.io.BufferedReader;
  import java.io.BufferedWriter;
  import java.io.FileReader;
  import java.io.FileWriter;
  import java.io.IOException;
  import java.util.regex.Matcher;
  import java.util.regex.Pattern;
  
  /**
  * 这是个配置文件操作类,用来读取和设置ini配置文件
  * @author 由月
  * @version 2004-08-18
  */
  public final class ConfigurationFile {
  /**
  * 从ini配置文件中读取变量的值
  * @param file 配置文件的路径
  * @param section 要获取的变量所在段名称
  * @param variable 要获取的变量名称
  * @param defaultValue 变量名称不存在时的默认值
  * @return 变量的值
  * @throws IOException 抛出文件操作可能出现的io异常
  */
  public static String getProfileString(
  String file,
  String section,
  String variable,
  String defaultValue)
  throws IOException {
  String strLine, value = "";
  BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
  boolean isInSection = false;
  try {
  while ((strLine = bufferedReader.readLine()) != null) {
  strLine = strLine.trim();
  strLine = strLine.split("[;]")[0];
  Pattern p;
  Matcher m;
  p = Pattern.compile("\\[\\s*.*\\s*\\]");
  m = p.matcher((strLine));
  if (m.matches()) {
  p = Pattern.compile("\\[\\s*" + section + "\\s*\\]");
  m = p.matcher(strLine);
  if (m.matches()) {
  isInSection = true;
  } else {
  isInSection = false;
  }
  }
  if (isInSection == true) {
  strLine = strLine.trim();
  String[] strArray = strLine.split("=");
  if (strArray.length == 1) {
  value = strArray[0].trim();
  if (value.equalsIgnoreCase(variable)) {
  value = "";
  return value;
  }
  } else if (strArray.length == 2) {
  value = strArray[0].trim();
  if (value.equalsIgnoreCase(variable)) {
  value = strArray[1].trim();
  return value;
  }
  } else if (strArray.length > 2) {
  value = strArray[0].trim();
  if (value.equalsIgnoreCase(variable)) {
  value = strLine.substring(strLine.indexOf("=") + 1).trim();
  return value;
  }
  }
  }
  }
  } finally {
  bufferedReader.close();
  }
  return defaultValue;
  }
  /**
  * 修改ini配置文件中变量的值
  * @param file 配置文件的路径
  * @param section 要修改的变量所在段名称
  * @param variable 要修改的变量名称
  * @param value 变量的新值
  * @throws IOException 抛出文件操作可能出现的io异常
  */
  public static boolean setProfileString(
  String file,
  String section,
  String variable,
  String value)
  throws IOException {
  String fileContent, allLine,strLine, newLine, remarkStr;
  String getValue;
  BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
  boolean isInSection = false;
  fileContent = "";
  try {
  
  while ((allLine = bufferedReader.readLine()) != null) {
  allLine = allLine.trim();
  if (allLine.split("[;]").length > 1)
  remarkStr = ";" + allLine.split(";")[1];
  else
  remarkStr = "";
  strLine = allLine.split(";")[0];
  Pattern p;
  Matcher m;
  p = Pattern.compile("\\[\\s*.*\\s*\\]");
  m = p.matcher((strLine));
  if (m.matches()) {
  p = Pattern.compile("\\[\\s*" + section + "\\s*\\]");
  m = p.matcher(strLine);
  if (m.matches()) {
  isInSection = true;
  } else {
  isInSection = false;
  }
  }
  if (isInSection == true) {
  strLine = strLine.trim();
  String[] strArray = strLine.split("=");
  getValue = strArray[0].trim();
  if (getValue.equalsIgnoreCase(variable)) {
  newLine = getValue + " = " + value + " " + remarkStr;
  fileContent += newLine + "\r\n";
  while ((allLine = bufferedReader.readLine()) != null) {
  fileContent += allLine + "\r\n";
  }
  bufferedReader.close();
  BufferedWriter bufferedWriter =
  new BufferedWriter(new FileWriter(file, false));
  bufferedWriter.write(fileContent);
  bufferedWriter.flush();
  bufferedWriter.close();
  
  return true;
  }
  }
  fileContent += allLine + "\r\n";
  }
  }catch(IOException ex){
  throw ex;
  } finally {
  bufferedReader.close();
  }
  return false;
  }
  /**
  * 程序测试
  */
  public static void main(String[] args) {
  //String value = Config.getProfileString("sysconfig.ini", "Option", "OracleDB", "default");
  //System.out.println(value);
  try {
  System.out.println(ConfigurationFile.setProfileString("d:/1.ini", "Settings", "SampSize", "111"));
  } catch (IOException e) {
  System.out.println(e.toString());
  }
  }
  }
 

分享到:
评论

相关推荐

    java平台读写ini配置文件(可读网络配置文件)

    本文将深入探讨如何在Java中读取和写入INI配置文件,同时涵盖读取网络配置文件以及将数据存储到本地的情况。 首先,Java本身并不内置对INI文件的支持,但我们可以借助第三方库如`ini4j`来实现对INI文件的操作。`ini...

    android项目中读取ini配置文件

    总之,在Android项目中读取`ini`配置文件,需要利用`AssetManager`访问`assets`目录,然后自行实现解析逻辑。这为应用程序提供了一种灵活的方式来管理配置信息,同时保持代码的可维护性和扩展性。

    java读取ini文件jar

    Java语言在处理各种类型的文件时提供了丰富的库支持, Ini文件是一种常见的配置文件格式,通常用于存储应用程序的设置或参数。虽然Java标准库没有内置对Ini文件的直接支持,但可以通过第三方库来实现读取和操作Ini...

    java读写ini文件

    Java语言在处理各种类型的文件时提供了丰富的API,其中包括读写INI配置文件。INI文件是一种常见的配置文件格式,常用于Windows系统或跨平台的应用程序中,它以键值对的形式存储数据,易于理解和编辑。在Java中,由于...

    JAVA写的读取ini文件

    在Java编程环境中,读取INI配置文件是一项常见的任务,特别是在处理系统设置或应用程序配置时。INI文件是一种简单易读的文本格式,常用于存储键值对数据。本篇将深入探讨如何使用Java来读取和操作INI文件,同时介绍...

    读写ini配置文件

    4. **读取ini配置文件** 使用ini4j的Wini类,你可以轻松读取ini文件的各个部分和键值对: ```java import org.ini4j Ini; import java.io.File; public class IniReader { public static void main(String[] ...

    Java读写ini文件代码示例

    * 轻量级:ini文件是一种轻量级的配置文件格式,Java读写ini文件代码示例也可以轻松地实现。 * 易用:Java读写ini文件代码示例非常易于使用和理解,即使您是Java新手,也可以轻松地掌握。 * 跨平台兼容:Java读写ini...

    java读取配置文件

    在Java中,我们可以使用多种方法来读取配置文件,下面将详细介绍几种常见的方法。 1. **使用`java.io`流读取** 最基础的方式是使用Java的I/O流来读取文本配置文件(通常是.properties格式)。例如,`java.io....

    java读取INI文件

    `iniFileRW.jar` 和 `iniFileRW` 提示这是一个Java项目,可能包含一个或多个类,用于读取和写入INI配置文件。 要使用Java读取INI文件,首先我们需要了解INI文件的基本结构。INI文件由多个节(Section)组成,每个节...

    ini4j读取ini文件类

    ini4j是一个Java库,专门设计用于处理INI配置文件,这是一种常见的在Windows系统和其他应用程序中使用的文本格式。本文将深入探讨ini4j库的功能、如何使用它来读取和写入INI文件,以及其在实际项目中的应用。 一、...

    java读取ini文件

    在Java编程中,读取INI文件是一个常见的任务,特别是在配置管理或者系统设置中。INI文件是一种简单的文本格式,用于存储键值对,类似于Windows系统的配置文件。本篇将深入探讨如何在Java中读取和操作INI文件,以及...

    java ini.java操作ini文档

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

    ini文件操作示例

    在其他操作系统中,虽然可能使用不同的配置文件格式,但ini文件的概念和操作方式仍然适用。 1. **ini文件的结构** ini文件的基本结构由节(Section)和键值对(Key-Value Pairs)组成。节以方括号`[]`包裹,键值对...

    java使用IniEditor读写INI文件inieditor源码

    总之,`IniEditor`为Java开发者提供了一个便捷的工具,用于管理INI配置文件。通过深入阅读和理解其源码,我们可以增强对文件操作、文本解析和数据结构设计的理解,进一步提升我们的编程技能。在实际项目中,合理利用...

    Ini配置文件读写.zip

    本文将深入探讨Ini配置文件的读写操作,包括基本结构、API函数以及在编程中的应用。 Ini配置文件的基本结构通常包含三个部分:节(Section)、键(Key)和值(Value)。一个简单的Ini文件可能如下所示: ``` ...

    读取配置文件xml ,ini

    总的来说,Java提供了多种方式来处理XML和INI配置文件,选择哪种方法取决于具体的应用场景和性能需求。在实际开发中,理解这些工具的工作原理并灵活运用,可以帮助我们更有效地管理和读取配置信息。

    org.dtools.javaini-v1.1.00-docs

    `org.dtools.javaini`是一个专门处理Java Ini配置文件的库,它为Java程序员提供了一种方便、高效的方式来操作Ini文件。本文将基于`org.dtools.javaini-v1.1.00-docs`的文档,详细阐述该库的功能、用法以及核心概念。...

    ini4j操作_ini4j下载_ini4j_java_

    ini4j是一个Java库,专为处理.INI配置文件而设计。它提供了丰富的API,使得在Java应用程序中读写、编辑.INI文件变得极其便捷。本文将深入探讨ini4j库的功能、用法以及如何在Java项目中集成和使用ini4j。 1. **ini4j...

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

    "java"标签表明`ini4j`是用Java编程语言实现的,因此它可以无缝地融入任何Java环境,包括Java SE、Java EE或Android应用。Java开发者可以利用这个库来处理INI文件,无需关心底层的文件解析逻辑。 **内容详解:** 1...

Global site tag (gtag.js) - Google Analytics