Hallo ihr,
bin neu hier und blutige Java-Anfängerin.
Trotzdem arbeite ich an einem umfangreichen Projekt und muss unter Anderem CVS-Dateien mit vielen Datensätzen einlesen können. Dazu habe ich folgenden Code gefunden und ihn nach meinen Bedürfnissen abgeändert :
Leider wird lediglich die Header-Zeile, sowie die erste Zeile danach ausgegeben. Mehr nicht. Woran kann das liegen? Sehe den Fehler einfach nicht
Kann mir bitte jemand helfen?
bin neu hier und blutige Java-Anfängerin.
Trotzdem arbeite ich an einem umfangreichen Projekt und muss unter Anderem CVS-Dateien mit vielen Datensätzen einlesen können. Dazu habe ich folgenden Code gefunden und ihn nach meinen Bedürfnissen abgeändert :
Java:
package Import;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;
import javax.swing.JFileChooser;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
public class CSVParser {
public static String fileChose() {
JFileChooser fc = new JFileChooser();
int ret = fc.showOpenDialog(null);
if (ret == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
String filename = file.getAbsolutePath();
return filename;
} else {
return null;
}
}
public static TableModel parse(File f) throws FileNotFoundException {
ArrayList<String> headers = new ArrayList<String>();
ArrayList<String> oneDdata = new ArrayList<String>();
@SuppressWarnings("resource")
Scanner lineScan = new Scanner(f);
@SuppressWarnings("resource")
Scanner s = new Scanner(lineScan.nextLine());
s.useDelimiter(",");
while (s.hasNext()) {
headers.add(s.next());
}
while (lineScan.hasNextLine()) {
s = new Scanner(lineScan.nextLine());
s.useDelimiter(",");
while (s.hasNext()) {
oneDdata.add(s.next());
}
}
String[][] data = new String[headers.size()][oneDdata.size()/headers.size()];
for (int x = 0; x < headers.size(); x++) {
for (int y = 0; y < data[0].length ; y++) {
data[x][y] = oneDdata.remove(0);
}
}
return new DefaultTableModel(data, headers.toArray());
}
public static void main(String[] args) throws FileNotFoundException {
TableModel t = CSVParser.parse(new File(fileChose()));
for (int x = 0; x < t.getColumnCount(); x++) {
System.out.print(t.getColumnName(x) + " ");
}
System.out.println(); // Print all the data from the table.
for (int x = 0; x < t.getRowCount(); x++) {
for (int y = 0; y < t.getColumnCount(); y++) {
System.out.print(t.getValueAt(x, y) + " ");
}
System.out.println();
}
}
}
Leider wird lediglich die Header-Zeile, sowie die erste Zeile danach ausgegeben. Mehr nicht. Woran kann das liegen? Sehe den Fehler einfach nicht
Kann mir bitte jemand helfen?