⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inifile.java

📁 java UI主题包,使控件能够呈现不同的样式
💻 JAVA
字号:
/* ==================================================================== * * Skin Look And Feel 6.7 License. * * Copyright (c) 2000-2006 L2FProd.com.  All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in *    the documentation and/or other materials provided with the *    distribution. * * 3. The end-user documentation included with the redistribution, if *    any, must include the following acknowlegement: *       "This product includes software developed by L2FProd.com *        (http://www.L2FProd.com/)." *    Alternately, this acknowlegement may appear in the software itself, *    if and wherever such third-party acknowlegements normally appear. * * 4. The names "Skin Look And Feel", "SkinLF" and "L2FProd.com" must not *    be used to endorse or promote products derived from this software *    without prior written permission. For written permission, please *    contact info@L2FProd.com. * * 5. Products derived from this software may not be called "SkinLF" *    nor may "SkinLF" appear in their names without prior written *    permission of L2FProd.com. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED.  IN NO EVENT SHALL L2FPROD.COM OR ITS CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ==================================================================== */package com.l2fprod.util;import java.io.*;import java.util.*;import java.net.URL;/** * @author    $Author: l2fprod $ * @created   27 avril 2002 * @version   $Revision: 1.5 $, $Date: 2005/11/19 09:26:22 $ */public class IniFile {  Hashtable sections;  /**   * Constructor for the IniFile object   */  public IniFile() {    sections = new Hashtable();  }  /**   * Constructor for the IniFile object   *   * @param filename                   Description of Parameter   * @exception FileNotFoundException  Description of Exception   */  public IniFile(String filename) throws FileNotFoundException {    this();    load(filename);  }  /**   * Constructor for the IniFile object   *   * @param url              Description of Parameter   * @exception IOException  Description of Exception   */  public IniFile(URL url) throws IOException {    this();    load(url.openStream());  }  /**   * Constructor for the IniFile object   *   * @param input            Description of Parameter   */  public IniFile(InputStream input) {    this();    load(input);  }  /**   * Sets the KeyValue attribute of the IniFile object   *   * @param section  The new KeyValue value   * @param key      The new KeyValue value   * @param value    The new KeyValue value   */  public void setKeyValue(String section, String key, String value) {    try {      getSection(section).put(key.toLowerCase(), value);    } catch (NullPointerException e) {      e.printStackTrace();    }  }  /**   * Gets the Sections attribute of the IniFile object   *   * @return   The Sections value   */  public Hashtable getSections() {    return sections;  }  /**   * Gets the Section attribute of the IniFile object   *   * @param section  Description of Parameter   * @return         The Section value   */  public Hashtable getSection(String section) {    return (Hashtable) (sections.get(section.toLowerCase()));  }  /**   * Gets the NullOrEmpty attribute of the IniFile object   *   * @param section  Description of Parameter   * @param key      Description of Parameter   * @return         The NullOrEmpty value   */  public boolean isNullOrEmpty(String section, String key) {    String value = getKeyValue(section, key);    return (value == null || value.length() == 0);  }  /**   * Gets the KeyValue attribute of the IniFile object   *   * @param section  Description of Parameter   * @param key      Description of Parameter   * @return         The KeyValue value   */  public String getKeyValue(String section, String key) {    try {      return (String) getSection(section).get(key.toLowerCase());    } catch (NullPointerException e) {      return null;    }  }  /**   * Gets the KeyIntValue attribute of the IniFile object   *   * @param section  Description of Parameter   * @param key      Description of Parameter   * @return         The KeyIntValue value   */  public int getKeyIntValue(String section, String key) {    return getKeyIntValue(section, key, 0);  }  /**   * Gets the KeyIntValue attribute of the IniFile object   *   * @param section       Description of Parameter   * @param key           Description of Parameter   * @param defaultValue  Description of Parameter   * @return              The KeyIntValue value   */  public int getKeyIntValue(String section, String key, int defaultValue) {    String value = getKeyValue(section, key.toLowerCase());    if (value == null) {      return defaultValue;    }    else {      try {        return Integer.parseInt(value);      } catch (NumberFormatException e) {        return 0;      }    }  }  /**   * return true if the value of the key is yes/true, false if no/false, defaultValue in all other cases.   * @param section   * @param key   * @param defaultValue   */  public boolean getKeyBooleanValue(String section, String key, boolean defaultValue) {      String value = getKeyValue(section, key.toLowerCase());      if (value == null) {        return defaultValue;      }      if ("yes".equalsIgnoreCase(value) || "true".equalsIgnoreCase(value))          return true;      if ("no".equalsIgnoreCase(value) || "false".equalsIgnoreCase(value))          return false;      return defaultValue;  }  /**   * Gets the KeysAndValues attribute of the IniFile object   *   * @param aSection  Description of Parameter   * @return          The KeysAndValues value   */  public String[][] getKeysAndValues(String aSection) {    Hashtable section = getSection(aSection);    if (section == null) {      return null;    }    String[][] results = new String[section.size()][2];    int i = 0;    for (Enumeration f = section.keys(), g = section.elements(); f.hasMoreElements(); i++) {      results[i][0] = (String) f.nextElement();      results[i][1] = (String) g.nextElement();    }    return results;  }  public String getSectionWhere(String[][] query) {    String result = null;        for (Enumeration e = getSections().keys(); e.hasMoreElements(); ) {	    String current = (String)e.nextElement();	    boolean match = true;	    for (int i = 0, c = query.length; i < c; i++) {        if (getKeyValue(current, query[i][0]) == null ||            getKeyValue(current, query[i][0]).equals(query[i][1]) == false) {          match = false;          break;        }	    }	    if (match) {        result = current;        break;	    }    }    return result;  }  /**   * Description of the Method   *   * @param filename                   Description of Parameter   * @exception FileNotFoundException  Description of Exception   */  public void load(String filename) throws FileNotFoundException {    load(new FileInputStream(filename));  }  /**   * Description of the Method   *   * @param filename         Description of Parameter   * @exception IOException  Description of Exception   */  public void save(String filename) throws IOException {    save(new FileOutputStream(filename));  }  /**   * Description of the Method   *   * @param in  Description of Parameter   */  public void load(InputStream in) {    try {      BufferedReader input = new BufferedReader(new InputStreamReader(in));      String read;      Hashtable section = null;      String section_name;      while ((read = input.readLine()) != null) {        if (read.startsWith(";") || read.startsWith("#")) {          continue;        }        else if (read.startsWith("[")) {          // new section          section_name = read.substring(1, read.indexOf("]")).toLowerCase();          section = (Hashtable) sections.get(section_name);          if (section == null) {            section = new Hashtable();            sections.put(section_name, section);          }        }        else if (read.indexOf("=") != -1 && section != null) {          // new key          String key = read.substring(0, read.indexOf("=")).trim().toLowerCase();          String value = read.substring(read.indexOf("=") + 1).trim();          section.put(key, value);        }      }    } catch (Exception e) {      e.printStackTrace();    }  }  /**   * Description of the Method   *   * @param out  Description of Parameter   */  public void save(OutputStream out) {    try {      PrintWriter output = new PrintWriter(out);      String section;      for (Enumeration e = sections.keys(); e.hasMoreElements(); ) {        section = (String) e.nextElement();        output.println("[" + section + "]");        for (Enumeration f = getSection(section).keys(), g = getSection(section).elements();            f.hasMoreElements(); ) {          output.println(f.nextElement() + "=" + g.nextElement());        }      }      output.flush();      output.close();      out.flush();      out.close();    } catch (Exception e) {      e.printStackTrace();    }  }  /**   * Adds a feature to the Section attribute of the IniFile object   *   * @param section  The feature to be added to the Section attribute   */  public void addSection(String section) {    sections.put(section.toLowerCase(), new Hashtable());  }  /**   * Description of the Method   *   * @param section  Description of Parameter   */  public void removeSection(String section) {  }  /**   * Simple test function   *   * @param args           The command line arguments   * @exception Exception  Description of Exception   */  public static void main(String[] args) throws Exception {    (new IniFile()).load(new FileInputStream(args[0]));  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -