Dieser hat mich verrückt gemacht. Ich habe den folgenden Code, der eine CSV-Datei und neu formatiert sie in eine Kopie bereit Format Java-Array einfügen lautet:Schreiben von Java-Dateien wird nach dem Zufallsprinzip beendet?
CSVReader reader = new CSVReader(new FileReader(fileName), ',' , '"' , 0);
FileWriter writer = new FileWriter(outFile);
//Read CSV line by line and use the string array as you want
//Read all rows at once
List<String[]> allRows = reader.readAll();
//print table header
//Read CSV line by line and use the string array as you want
for(String[] row : allRows){
System.out.println(Arrays.toString(row));
writer.write("{");
for(int lcv = 0;lcv<row.length;lcv++){
if(lcv == row.length -1){
writer.write(row[lcv]);
}else{
writer.write(row[lcv]+",");
}
}
writer.write("},\n");
}
Wie Sie sehen können, ist der Code druckt die Datensätze in der Datei zu trösten, sowie in die Datei für meine Kopie einfügen. Der Code funktioniert, keine Fehler usw. Die erstellte Datei stoppt jedoch zufällig in der Mitte der Datensätze. Ich bin durch den Code gegangen und die Schreibaufrufe funktionieren, und der seltsamste Teil ist, dass die Konsole alle Datensätze in Ordnung druckt, die die erstellte Datei spiegeln sollen. Gibt es jemanden, der erklären kann, warum die Datei nicht fertig ist, aber die Konsole ist?
Weitere Informationen. Die anfängliche Datei bestand aus 76 Zeilen von ungefähr 36 KB. Ich dachte, das Problem war, dass das Speicherlimit erreicht wurde, als es bei Zeile 56 von 76 anhielt. Ich ran 56-76 (jetzt 1-20) und es hörte bei Zeile 18. Es hat mich ratlos ...
Das ist es. Es ist der Flush und schließen. Ich fühle mich jetzt dumm ... –
Keine Notwendigkeit, sich dumm zu fühlen, es ist vielen von uns passiert. Jetzt wissen Sie! – Todd