📄 inifile.java
字号:
package org.joone.edit;import java.io.*;import java.util.*;/** * Extension of file to perform ini file functions. */public class IniFile { String fileName; Collection cache = new ArrayList(); public IniFile(String fileNameArg) throws IOException { fileName = fileNameArg; File file = new File(fileName); if (!file.exists()) { PrintWriter pw = new PrintWriter(new FileWriter(file)); pw.flush(); pw.close(); } } public void setParameter(String section, String item, String value) throws IOException, IllegalArgumentException { if (section == null || section.trim().equals("")) { throw new IllegalArgumentException("Section is null or blank."); } if (item == null || item.trim().equals("")) { throw new IllegalArgumentException("Item is null or blank."); } if (value == null) { throw new IllegalArgumentException("Value is null."); } cache = new ArrayList(); // Read in till the [section] is found. BufferedReader br = new BufferedReader(new FileReader(fileName)); String line; boolean foundSection = false; while ((line = br.readLine()) != null) { cache.add(line); if (line.toUpperCase().equals("[" + section.toUpperCase() + "]")) { foundSection = true; break; } } // See if section has been found. If not, add section. if (!foundSection) { cache.add("[" + section.toUpperCase() + "]"); foundSection = true; } // Scan in remaining items. boolean foundItem = false; while ((line = br.readLine()) != null) { if (line.startsWith(item.toLowerCase() + "=")) { cache.add(item.toLowerCase() + "=" + value.toLowerCase()); foundItem = true; } else { if (line.startsWith("[") && !foundItem) { cache.add(item.toLowerCase() + "=" + value.toLowerCase()); foundSection = false; foundItem = true; } cache.add(line); } } if (!foundItem && foundSection) { cache.add(item.toLowerCase() + "=" + value.toLowerCase()); } br.close(); // Now output everything to the file. PrintWriter pw = new PrintWriter(new FileWriter(fileName)); for (Iterator iter = cache.iterator(); iter.hasNext();) { pw.println((String) iter.next()); } pw.flush(); pw.close(); } public String getParameter(String section, String item) throws IOException, IllegalArgumentException { if (!cache.isEmpty()) { String result = null; boolean foundSection = false; for (Iterator iter = cache.iterator(); iter.hasNext();) { String line = (String) iter.next(); if (line.toUpperCase().equals("[" + section.toUpperCase() + "]")) { foundSection = true; continue; } if (foundSection && line.startsWith(item + "=")) { result = line.substring(1 + line.indexOf("=")); } if (foundSection && line.startsWith("[")) { break; } } if (result != null) { return result; } } else { BufferedReader br = new BufferedReader(new FileReader(fileName)); String line; boolean foundSection = false; String result = null; while ((line = br.readLine()) != null) { cache.add(line); if (line.toUpperCase().equals("[" + section.toUpperCase() + "]")) { foundSection = true; continue; } if (foundSection && line.startsWith(item + "=")) { result = line.substring(1 + line.indexOf("=")); } if (foundSection && line.startsWith("[")) { foundSection = false; } } if (result != null) { return result; } } throw new IllegalArgumentException("Section {" + section + "} item {" + item + "} not found."); } public String getParameter(String section, String item, String deflt) throws IOException { try { return getParameter(section, item); } catch (IllegalArgumentException e) { return deflt; } } public static void main(String[] args) { try { IniFile i = new IniFile("q.ini"); i.setParameter("section 1","item 1","value 1"); i.setParameter("sec 2","item 2","val 2"); i.setParameter("section 1","item 3","val 3"); System.out.println(i.getParameter("section 1", "item 3", "55")); System.out.println(i.getParameter("sec 2", "item 2")); System.out.println(i.getParameter("section 1", "item 4", "55")); System.out.println(i.getParameter("section 2", "item 2")); } catch(Exception e) { e.printStackTrace(); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -