Class IniFile
- java.lang.Object
- com.iizix.util.IniFile
 
- public class IniFile extends java.lang.ObjectLoads and handles retrieval of data in a file such as SERVER.INI with [sections] and "item=data". The "data" may only be strings (i.e. no decimal or hexadecimal data is yet supported.- Author:
- Christopher Mindus
 
- Constructor Summary- Constructors - Constructor - Description - IniFile(boolean isCaseSensitive, XFile in)Loads the contents a the opened file (typically from a JAR or ZIP file).- IniFile(boolean isCaseSensitive, XFile in, boolean isEditable)Loads the contents a the opened file (typically from a JAR or ZIP file).- IniFile(boolean isCaseSensitive, java.lang.String fileName)The constructor loads the contents of the file.- IniFile(boolean isCaseSensitive, java.lang.String fileName, boolean isEditable)The constructor loads the contents of the file.- IniFile(XFile in)Loads the contents a the opened file (typically from a JAR or ZIP file).- IniFile(XFile in, boolean isEditable)Loads the contents a the opened file (typically from a JAR or ZIP file).- IniFile(java.lang.String fileName)The constructor loads the contents of the file.- IniFile(java.lang.String fileName, boolean isEditable)The constructor loads the contents of the file.
 - Method Summary- All Methods Static Methods Instance Methods Concrete Methods - Modifier and Type - Method - Description - static IniFile- createNewIniFile(boolean isCaseSensitive, java.lang.String fileName)Creates a new editable INI file.- static IniFile- createNewIniFile(java.lang.String fileName)Creates a new editable INI file.- boolean- deleteSection(java.lang.String name)Removes a section from the INI file.- boolean- doCreateUntitledSectionHeadings()Checked if untitled sections headings should be created.- java.lang.String- getData(java.lang.String section, java.lang.String item)Gets an item string in a section.- boolean- getData(java.lang.String section, java.lang.String item, boolean defaultData)Gets a boolean value from an item.- int- getData(java.lang.String section, java.lang.String item, int defaultData)Gets a integer value from an item.- java.lang.String- getData(java.lang.String section, java.lang.String item, java.lang.String defaultData)Gets an item string in a section with default data if not found.- java.lang.String- getFileName()Gets the file name of the ini file.- java.util.Enumeration<java.lang.String>- getItems(java.lang.String section)Gets all the item elements in a section.- java.util.HashMap<java.lang.String,java.lang.String>- getSectionItems(java.lang.String section)Gets a copy of the hash table of a section.- java.util.Enumeration<java.lang.String>- getSections()Gets all the section elements in the file.- int- getSize(java.lang.String section)Gets number of elements in a section.- boolean- hasChanged()Checks if the INI file has changed and might need a "save".- boolean- needsReload()Check if this file needs to be reloaded.- boolean- reload(boolean force)Reload internal state from external sources.- void- removeAllItems(java.lang.String section)Removes all items defined in a section.- boolean- renameSection(java.lang.String oldName, java.lang.String newName)Renames a section in the INI file.- void- save(java.io.OutputStream out)Saves the INI file to an OutputStream without closing it.- void- save2(XOutputFile out)Saves the INI file to an open PhantomOutputFile without closing it.- void- saveFile()Saves all changes (if any) made to the file.- void- setCreateUntitledSectionHeadings(boolean on)Sets if untitled sections headings should be created or not.- void- setItem(java.lang.String section, java.lang.String item, boolean data)Sets the topic and item to a specific boolean (0 or 1).- void- setItem(java.lang.String section, java.lang.String item, int data)Sets the topic and item to a specific integer.- void- setItem(java.lang.String section, java.lang.String item, java.lang.String data)Sets the topic and item to a specific string.- void- setItem(java.lang.String section, java.lang.String item, java.lang.String data, java.lang.String newSectionHeadingText)Sets the topic and item to a specific string.- void- setItems(java.lang.String section, java.lang.String[] items)Adds a set of items that does not include the equal sign to a topic.- void- setItems(java.lang.String section, java.lang.String[] items, java.lang.String newSectionHeadingText)Adds a set of items that does not include the equal sign to a topic.- void- setItems(java.lang.String section, java.util.HashMap<java.lang.String,java.lang.String> itemDataPairs)Sets the topic and item to a specific string.- void- setItems(java.lang.String section, java.util.HashMap<java.lang.String,java.lang.String> itemDataPairs, java.lang.String newSectionHeadingText)Sets the topic and item to a specific string.- void- setItems(java.lang.String section, java.util.Hashtable<java.lang.String,java.lang.String> itemDataPairs)Sets the topic and item to a specific string.- void- setItems(java.lang.String section, java.util.Hashtable<java.lang.String,java.lang.String> itemDataPairs, java.lang.String newSectionHeadingText)Sets the topic and item to a specific string.- void- setItems(java.lang.String section, java.util.Set<java.util.Map.Entry<java.lang.String,java.lang.String>> entries)Sets the topic and item to a specific string.- void- setItems(java.lang.String section, java.util.Set<java.util.Map.Entry<java.lang.String,java.lang.String>> entries, java.lang.String newSectionHeadingText)Sets the topic and item to a specific string.
 
- Constructor Detail- IniFile- public IniFile(java.lang.String fileName) throws java.io.IOException, java.io.FileNotFoundExceptionThe constructor loads the contents of the file.- Throws:
- java.io.IOException- if an I/O error occurs.
- java.io.FileNotFoundException- if the file is not found.
 
 - IniFile- public IniFile(boolean isCaseSensitive, java.lang.String fileName) throws java.io.IOException, java.io.FileNotFoundExceptionThe constructor loads the contents of the file.- Throws:
- java.io.IOException- if an I/O error occurs.
- java.io.FileNotFoundException- if the file is not found.
 
 - IniFile- public IniFile(java.lang.String fileName, boolean isEditable) throws java.io.IOException, java.io.FileNotFoundExceptionThe constructor loads the contents of the file. Set- isEditableto- trueif the contents of the file may be changed and later saved.- Throws:
- java.io.IOException- if an I/O error occurs.
- java.io.FileNotFoundException- if the file is not found.
 
 - IniFile- public IniFile(boolean isCaseSensitive, java.lang.String fileName, boolean isEditable) throws java.io.IOException, java.io.FileNotFoundExceptionThe constructor loads the contents of the file. Set- isEditableto- trueif the contents of the file may be changed and later saved.- Throws:
- java.io.IOException- if an I/O error occurs.
- java.io.FileNotFoundException- if the file is not found.
 
 - IniFile- public IniFile(XFile in) throws java.io.IOException Loads the contents a the opened file (typically from a JAR or ZIP file).- Throws:
- java.io.IOException- if an I/O error occurs.
 
 - IniFile- public IniFile(boolean isCaseSensitive, XFile in) throws java.io.IOExceptionLoads the contents a the opened file (typically from a JAR or ZIP file).- Throws:
- java.io.IOException- if an I/O error occurs.
 
 - IniFile- public IniFile(XFile in, boolean isEditable) throws java.io.IOException Loads the contents a the opened file (typically from a JAR or ZIP file).- Throws:
- java.io.IOException- if an I/O error occurs.
 
 - IniFile- public IniFile(boolean isCaseSensitive, XFile in, boolean isEditable) throws java.io.IOExceptionLoads the contents a the opened file (typically from a JAR or ZIP file).- Throws:
- java.io.IOException- if an I/O error occurs.
 
 
 - Method Detail- createNewIniFile- public static IniFile createNewIniFile(java.lang.String fileName) Creates a new editable INI file.
 - createNewIniFile- public static IniFile createNewIniFile(boolean isCaseSensitive, java.lang.String fileName) Creates a new editable INI file.
 - setCreateUntitledSectionHeadings- public void setCreateUntitledSectionHeadings(boolean on) Sets if untitled sections headings should be created or not.
 - doCreateUntitledSectionHeadings- public boolean doCreateUntitledSectionHeadings() Checked if untitled sections headings should be created.
 - needsReload- public boolean needsReload() Check if this file needs to be reloaded.
 - reload- public boolean reload(boolean force) throws java.io.IOExceptionReload internal state from external sources.- Parameters:
- force- Force the reload flag.
- Returns:
- true for success, false for nothing done (failure is reported by IOException).
- Throws:
- java.io.IOException
 
 - getFileName- public java.lang.String getFileName() Gets the file name of the ini file.
 - getSections- public java.util.Enumeration<java.lang.String> getSections() Gets all the section elements in the file.
 - getItems- public java.util.Enumeration<java.lang.String> getItems(java.lang.String section) Gets all the item elements in a section.- Returns:
- null If section not found.
 
 - getSectionItems- public java.util.HashMap<java.lang.String,java.lang.String> getSectionItems(java.lang.String section) Gets a copy of the hash table of a section.
 - getSize- public int getSize(java.lang.String section) Gets number of elements in a section.- Returns:
- 0 If section not found.
 
 - getData- public java.lang.String getData(java.lang.String section, java.lang.String item)Gets an item string in a section.- Returns:
- null If no item is found or if the item did not contain any data (i.e. as "ItemDoesNotHave An EqualSign".
 
 - getData- public java.lang.String getData(java.lang.String section, java.lang.String item, java.lang.String defaultData)Gets an item string in a section with default data if not found.
 - getData- public int getData(java.lang.String section, java.lang.String item, int defaultData)Gets a integer value from an item.
 - getData- public boolean getData(java.lang.String section, java.lang.String item, boolean defaultData)Gets a boolean value from an item.
 - setItem- public void setItem(java.lang.String section, java.lang.String item, int data)Sets the topic and item to a specific integer. If the topic or item doesn't exist, they will be created. Note that the topic may be in any character case (and any existing entry will preserve the original case). New topics/items are added at the end of the topic or the file respectively.- Use the method - saveFileto save all changes made to the file.
 - setItem- public void setItem(java.lang.String section, java.lang.String item, boolean data)Sets the topic and item to a specific boolean (0 or 1). If the topic or item doesn't exist, they will be created. Note that the topic may be in any character case (and any existing entry will preserve the original case). New topics/items are added at the end of the topic or the file respectively.- Use the method - saveFileto save all changes made to the file.
 - setItem- public void setItem(java.lang.String section, java.lang.String item, java.lang.String data)Sets the topic and item to a specific string. If the topic or item doesn't exist, they will be created. Note that the topic may be in any character case (and any existing entry will preserve the original case). New topics/items are added at the end of the topic or the file respectively.- Use the method - saveFileto save all changes made to the file.
 - setItem- public void setItem(java.lang.String section, java.lang.String item, java.lang.String data, java.lang.String newSectionHeadingText)Sets the topic and item to a specific string. If the topic or item doesn't exist, they will be created. Note that the topic may be in any character case (and any existing entry will preserve the original case). New topics/items are added at the end of the topic or the file respectively.- This method doesn't do anything if the item already has the specified data. - Use the method - saveFileto save all changes made to the file.
 - setItems- public void setItems(java.lang.String section, java.lang.String[] items)Adds a set of items that does not include the equal sign to a topic. If the topic doesn't exist, it will be created. Note that the topic may be in any character case (and any existing entry will preserve the original case). New topics/items are added at the end of the topic or the file respectively.- Use the method - saveFileto save all changes made to the file.
 - setItems- public void setItems(java.lang.String section, java.lang.String[] items, java.lang.String newSectionHeadingText)Adds a set of items that does not include the equal sign to a topic. If the topic doesn't exist, it will be created. Note that the topic may be in any character case (and any existing entry will preserve the original case). New topics/items are added at the end of the topic or the file respectively.- Use the method - saveFileto save all changes made to the file.
 - setItems- public void setItems(java.lang.String section, java.util.Hashtable<java.lang.String,java.lang.String> itemDataPairs)Sets the topic and item to a specific string. If the topic or item doesn't exist, they will be created. Note that the topic may be in any character case (and any existing entry will preserve the original case). New topics/items are added at the end of the topic or the file respectively.- Use the method - saveFileto save all changes made to the file.
 - setItems- public void setItems(java.lang.String section, java.util.Hashtable<java.lang.String,java.lang.String> itemDataPairs, java.lang.String newSectionHeadingText)Sets the topic and item to a specific string. If the topic or item doesn't exist, they will be created. Note that the topic may be in any character case (and any existing entry will preserve the original case). New topics/items are added at the end of the topic or the file respectively.- Use the method - saveFileto save all changes made to the file.
 - setItems- public void setItems(java.lang.String section, java.util.HashMap<java.lang.String,java.lang.String> itemDataPairs)Sets the topic and item to a specific string. If the topic or item doesn't exist, they will be created. Note that the topic may be in any character case (and any existing entry will preserve the original case). New topics/items are added at the end of the topic or the file respectively.- Use the method - saveFileto save all changes made to the file.
 - setItems- public void setItems(java.lang.String section, java.util.HashMap<java.lang.String,java.lang.String> itemDataPairs, java.lang.String newSectionHeadingText)Sets the topic and item to a specific string. If the topic or item doesn't exist, they will be created. Note that the topic may be in any character case (and any existing entry will preserve the original case). New topics/items are added at the end of the topic or the file respectively.- Use the method - saveFileto save all changes made to the file.
 - setItems- public void setItems(java.lang.String section, java.util.Set<java.util.Map.Entry<java.lang.String,java.lang.String>> entries)Sets the topic and item to a specific string. If the topic or item doesn't exist, they will be created. Note that the topic may be in any character case (and any existing entry will preserve the original case). New topics/items are added at the end of the topic or the file respectively.- Use the method - saveFileto save all changes made to the file.
 - setItems- public void setItems(java.lang.String section, java.util.Set<java.util.Map.Entry<java.lang.String,java.lang.String>> entries, java.lang.String newSectionHeadingText)Sets the topic and item to a specific string. If the topic or item doesn't exist, they will be created. Note that the topic may be in any character case (and any existing entry will preserve the original case). New topics/items are added at the end of the topic or the file respectively.- Use the method - saveFileto save all changes made to the file.
 - removeAllItems- public void removeAllItems(java.lang.String section) Removes all items defined in a section.
 - deleteSection- public boolean deleteSection(java.lang.String name) Removes a section from the INI file. This will comment the section heading and remove all the uncommented items in it.- Returns:
- true for success; false for failure.
 
 - renameSection- public boolean renameSection(java.lang.String oldName, java.lang.String newName)Renames a section in the INI file. The section should not contain the [brackets]. To remove a section from the INI file, i.e. to comment it, just set- newNameto- null. This will comment the section heading and remove all the uncommented items in it.- Returns:
- true for success; false for failure.
 
 - hasChanged- public boolean hasChanged() Checks if the INI file has changed and might need a "save".
 - saveFile- public void saveFile() throws java.io.IOExceptionSaves all changes (if any) made to the file. Before the save is performed, a backup file as "filename[.extension].bak" is created.- Throws:
- java.io.IOException- if an I/O error occurs.
 
 - save2- public void save2(XOutputFile out) throws java.io.IOException Saves the INI file to an open PhantomOutputFile without closing it.- Throws:
- java.io.IOException- if an I/O error occurs.
 
 - save- public void save(java.io.OutputStream out) throws java.io.IOExceptionSaves the INI file to an OutputStream without closing it.- Throws:
- java.io.IOException- if an I/O error occurs.