Hallo,
(Achtung Anfängerfrage
) ich versuche per Java ein mittels eines ini-Templates und einer Parameter-Datei automatisiert ini-Files zu erstellen. Ich habe aber das Problem, dass die Parameter-Datei Zeilen enthalten kann in den ein Value leer ist und das ist in meinem Programm ein Problem.
Ist mein Ansatz falsch oder gibt es eine Möglichkeit es abzufangen?
Danke für die Antworten.
VG
ini-Template:
Parameter-Datei:
(Achtung Anfängerfrage
Ist mein Ansatz falsch oder gibt es eine Möglichkeit es abzufangen?
Danke für die Antworten.
VG
ini-Template:
Code:
; some text some text some text
PARAMETER_B = {OPTION1}
[some text]
; some text
PARAMETER_C = {OPTION2}
; some text
PARAMETER_D = {OPTION3}
; some text
PARAMETER_E = {OPTION4}
[some text]
; some text
PARAMETER_F={OPTION5}
Parameter-Datei:
Code:
FILE1.ini,VALUE1_1,VALUE1_2,VALUE1_3,VALUE1_4,VALUE1_5,VALUE1_6,
FILE2.ini,VALUE2_1,VALUE2_2,VALUE2_3,VALUE2_4,VALUE2_5,,
FILE3.ini,VALUE3_1,VALUE3_2,VALUE3_3,VALUE3_4,VALUE3_5,VALUE3_6,
Java:
package create_my_ini;
import java.io.*;
class Create_my_ini {
public static void main(String[] args) throws IOException {
BufferedReader bufReadtemplate = new BufferedReader(new FileReader(new File("template.txt")));
BufferedReader bufReadproperty = new BufferedReader(new FileReader(new File("property_data.txt")));
StringBuilder sb = new StringBuilder();
String oneLine;
while ((oneLine = bufReadtemplate.readLine()) != null)
sb.append(oneLine + "\n");
bufReadtemplate.close();
String newLine;
while ((newLine = bufReadproperty.readLine()) != null) {
String[] parts = newLine.split(",");
//System.out.println(newLine);
if (parts.length == 7) {
String content = sb.toString();
content = content.replace("{OPTION0}", parts[1])
.replace("{OPTION1}", parts[2])
.replace("{OPTION2}", parts[3])
.replace("{OPTION3}", parts[4])
.replace("{OPTION4}", parts[5])
.replace("{OPTION5}", parts[6]);
//System.out.println(content);
BufferedWriter bufWriteini = new BufferedWriter(new FileWriter(new File((parts[0]))));
System.out.println("File written ".concat(parts[0]));
bufWriteini.write(content);
bufWriteini.flush();
bufWriteini.close();
} else {
System.out.println("Line too short for ".concat(parts[0]));
}
}
bufReadproperty.close();
}
}