Hallo zusammen,
ich bastel gerade eine Methode, die mir aus einer HashMap mit Dateipfaden als Keys, und den Dateiinhalten als lists .csv Dateien erzeugen soll. Strengenomen handelt es sich nichtmal wirklich um .csv sondern .log Dateien.
Ich laufe durch die Map und erzeuge mir durch den Key den Dateipfaden bzw. die Datei in die ich schreiben will und schreibe dann die Liste (also den Wert zum Key) in die Datei.
Dabei kommt dann in der erzeugten Datei folgendes raus:
[0.004606,14.58012568950653, 0.01466,14.58012568950653, 0.02.....
Was ich haben will sieht aber so aus:
0.004606,14.58012568950653
0.01466,14.58012568950653
0.02.....
Wie geht man denn bei sowas am blödesten vor?
Zum Beispiel könnte man ja nach Kommas suchen und jedes ungerade Komma durch eine neue Zeile ersetzen?
Oder ist es vll besser den Inhalt der Datei in der HashMap nicht als List zu speichern sondern unter etwas anderem?
Hinzu kommt noch, dass ich eigentlich nicht gleich die komplette Datei schreiben will, sondern erst eine bestimme Anzahl an Zeilen. Dann möchte ich für einen bestimmten Zeitwert warten und dann die nächste Ladung in die Datei exportieren
ich bastel gerade eine Methode, die mir aus einer HashMap mit Dateipfaden als Keys, und den Dateiinhalten als lists .csv Dateien erzeugen soll. Strengenomen handelt es sich nichtmal wirklich um .csv sondern .log Dateien.
Ich laufe durch die Map und erzeuge mir durch den Key den Dateipfaden bzw. die Datei in die ich schreiben will und schreibe dann die Liste (also den Wert zum Key) in die Datei.
Java:
public static void ExportCSV(Map<Path, List<String>> hashMap) throws FileNotFoundException{
for (Map.Entry<Path, List<String>> entry : hashMap.entrySet()) {
System.out.println("Currently written file: " + entry.getKey());
Path key = entry.getKey();
List value = entry.getValue();
PrintWriter pw = new PrintWriter(new File(key.toString() + "-Copy"));
StringBuilder sb = new StringBuilder();
sb.append(value);
pw.write(value.toString());
pw.close();
}
}
Dabei kommt dann in der erzeugten Datei folgendes raus:
[0.004606,14.58012568950653, 0.01466,14.58012568950653, 0.02.....
Was ich haben will sieht aber so aus:
0.004606,14.58012568950653
0.01466,14.58012568950653
0.02.....
Wie geht man denn bei sowas am blödesten vor?
Zum Beispiel könnte man ja nach Kommas suchen und jedes ungerade Komma durch eine neue Zeile ersetzen?
Oder ist es vll besser den Inhalt der Datei in der HashMap nicht als List zu speichern sondern unter etwas anderem?
Hinzu kommt noch, dass ich eigentlich nicht gleich die komplette Datei schreiben will, sondern erst eine bestimme Anzahl an Zeilen. Dann möchte ich für einen bestimmten Zeitwert warten und dann die nächste Ladung in die Datei exportieren