Click to See Complete Forum and Search --> : Read and update a ini file


eranga262154
May 9th, 2008, 12:18 AM
Hi all.

I want to read and update a ini file to do some processing. Here is what I have try.


public static void main(String[] args) {
// TODO code application logic here
new ReadINIFile().readIt();
//new ReadINIFile().writeIt();
}

private void readIt() {
try {
Properties pro = new Properties();
pro.load(new FileInputStream("temp.ini"));

// Try to display them
System.out.println("Key is: " + pro.getProperty("Key"));
System.out.println("Here is: " + pro.getProperty("Here"));

}
catch(Exception ex) {
System.out.println(ex.getMessage());
}
}

private void writeIt() {
// Try to update values
try {
Properties pri = new Properties();
pri.store(new FileOutputStream("temp.ini"), "Just a comment");
pri.setProperty("Here", "New");

}
catch(IOException ioe) {
System.out.println(ioe.getMessage());
}
}


Reading part is ok, it's read all data I want. When I write all content of the ini file is deleted and following is the content.


#Just a comment
#Fri May 09 10:41:51 IST 2008


Can anyone of you tell me where I'm going wrong. Here is the structure of the ini file.


[Head]
Text=Java
Key=14
Name=Old
[More]
Here=New

keang
May 9th, 2008, 04:16 AM
RTFM - The API docs state that calling this method writes the comment followed by a comment line containing the date followed by the properties data.

Your empty file problem is that you are calling this method on an empty properties file and then adding the data on subsequent lines.

I'm not sure that using a properties object is the best way to read and write an ini file. It is designed to handle key-value pairs and has no concept of the heading/sections used in ini files to segregate data

eranga262154
May 9th, 2008, 05:02 AM
So, what is the best option I have. Example would be really helpful for me.

keang
May 10th, 2008, 07:33 AM
So, what is the best option I haveWell you could use some common sense and google for information. You can't be the only person in the world that wants to read and write Window's ini files from a Java app, there's almostly certainly a freely available library for doing this.

Ok, I've looked for you - here's one called ini4J (http://ini4j.sourceforge.net/index.html) (I've no idea how good it is though).