Hallo an alle,
Ich bin grad dabei ein Programm zu schreiben, dass eine .csv Datei einließt. Die Datei soll mir dann in einer jTable angezeigt werden. Ich bin bereits soweit das mir die Titeln der Spalten in der Tabelle richtig angezeigt werden. Aber beim einlesen der Reihen lest er mir immer nur eine Reihe ein. Ich weiß nicht warum???
hier einmal mein code:
Zur Erklärung:
Als erstes lese ich die erste Zeile ein, diese enthält nämlich die Titeln meines Spalten. Diese füge ich dann mit einer for-Schleife als Spalten meiner Tabelle hinzu.
Danach will ich die restliche Datei einlesen bis es keine Zeile mehr gibt und diese dann in der Tabelle ausgeben.
Die Werte die für jeweils eine Spalte gedacht sind sind durch einen Beistrich von einander getrennt. Um diese zu erkennen benutz ich das Pattern "\"(.*?)\"".
Mein Problem dabei ist, dass sich in meinem Vector data nur eine Reihe befindet.
Weiß vielleicht jemand was ich falsch mache??
Ich bin grad dabei ein Programm zu schreiben, dass eine .csv Datei einließt. Die Datei soll mir dann in einer jTable angezeigt werden. Ich bin bereits soweit das mir die Titeln der Spalten in der Tabelle richtig angezeigt werden. Aber beim einlesen der Reihen lest er mir immer nur eine Reihe ein. Ich weiß nicht warum???
hier einmal mein code:
Java:
Pattern p = Pattern.compile("\"(.*?)\"");
Vector<String> columnTitle = new Vector<String>();
Vector<String> data = new Vector<String>();
DefaultTableModel tableModel = new DefaultTableModel();
table.setModel(tableModel);
File file = fileChooser.getSelectedFile();
BufferedReader in = new BufferedReader(new FileReader(file));
String line;
line = in.readLine();
Matcher m = p.matcher(line);
while (m.find()) {
columnTitle.add(m.group(1));
}
for (int i = 0; i < columnTitle.size(); i++) {
tableModel.addColumn(columnTitle.get(i));
}
while (in.ready()) {
line = in.readLine();
m = p.matcher(line);
while (m.find()) {
data.add(m.group(1));
}
}
tableModel.addRow(data);
Zur Erklärung:
Als erstes lese ich die erste Zeile ein, diese enthält nämlich die Titeln meines Spalten. Diese füge ich dann mit einer for-Schleife als Spalten meiner Tabelle hinzu.
Danach will ich die restliche Datei einlesen bis es keine Zeile mehr gibt und diese dann in der Tabelle ausgeben.
Die Werte die für jeweils eine Spalte gedacht sind sind durch einen Beistrich von einander getrennt. Um diese zu erkennen benutz ich das Pattern "\"(.*?)\"".
Mein Problem dabei ist, dass sich in meinem Vector data nur eine Reihe befindet.
Weiß vielleicht jemand was ich falsch mache??