Hallo,
ich schreibe gerade eine Anwendung mit der ich diverse Produkte verwalten kann. Diese Produkte besitzen ~16 Eigenschaften (Attribute) welche ich in einer csv-Datei speichere und beim Programmstart auslese. (Zurzeit nur rund 150 Datensätze, werden aber mehr) Ist es möglich zu definieren, dass die Software alle Attribute eines Objekt, getrennt durch ";", in eine Datei schreibt oder ist die folgende Möglichkeit die Einzige/Beste?
Also bisher mache ich das lesen so
und das schreiben so:
Besonders beim schreiben erscheint mir dieses aneinander schreiben von ".append()" etwas umständlich und unschön.
Eine weitere Frage, sind csv Dateien für eine Anzahl von 10 Attribute + überhaupt noch zu gebrauchen oder sollte man auf andere Datenstrukteren (DB) umsteigen?
Danke
Zenic
ich schreibe gerade eine Anwendung mit der ich diverse Produkte verwalten kann. Diese Produkte besitzen ~16 Eigenschaften (Attribute) welche ich in einer csv-Datei speichere und beim Programmstart auslese. (Zurzeit nur rund 150 Datensätze, werden aber mehr) Ist es möglich zu definieren, dass die Software alle Attribute eines Objekt, getrennt durch ";", in eine Datei schreibt oder ist die folgende Möglichkeit die Einzige/Beste?
Also bisher mache ich das lesen so
Java:
try {
br = new BufferedReader(new FileReader(csvUrl));
while ((line = br.readLine()) != null) {
String[] splitlineCache = line.split(";");
ArrayList<String> splitline = new ArrayList<String>(Arrays.asList(splitlineCache));
if(splitline.size() < 12){
for(int i = splitline.size(); i < 12; i++){
splitline.add("1");
}
}
products.add(new Product(splitline.get(0), splitline.get(1), splitline.get(2),
splitline.get(3), Integer.valueOf(splitline.get(4)), splitline.get(5),
splitline.get(6), splitline.get(7), splitline.get(8),
splitline.get(9), Integer.valueOf(splitline.get(10)),
splitline.get(11)));
}
}
und das schreiben so:
Java:
public void writeProductToCSVFile(String csvUrl, Product p) {
try {
FileWriter fw = new FileWriter(csvUrl, true);
BufferedWriter bw = new BufferedWriter(fw);
bw.newLine();
bw.write(createStringForCSV(p));
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private String createStringForCSV(Product p){
StringBuilder sb = new StringBuilder();
sb.append(p.getA());
sb.append(";");
sb.append(p.getB());
sb.append(";");
sb.append(p.getC());
sb.append(";");
sb.append(p.getD());
sb.append(";");
sb.append(p.getE());
sb.append(";");
etc. ...
return sb.toString();
}
Besonders beim schreiben erscheint mir dieses aneinander schreiben von ".append()" etwas umständlich und unschön.
Eine weitere Frage, sind csv Dateien für eine Anzahl von 10 Attribute + überhaupt noch zu gebrauchen oder sollte man auf andere Datenstrukteren (DB) umsteigen?
Danke
Zenic
Zuletzt bearbeitet: