# csv datei in JTable einlesen



## erdmulch (24. Dez 2011)

Hallo zusammen,

habe folgendes Problem. Will eine .csv datei in ein JTable einlesen. leider wird nichts angezeigt. kann mir jamend sagen warum?

die .csv datei ist unter dem Java Programm

danke im voraus


```
package com.Ostermiller.util;

/*
 * Created on 21.03.2005
 */
 
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import java.io.*;
 
public class AccessDB extends JFrame
{
  private class MeinWindowListener extends WindowAdapter
  {
    public void windowClosing(WindowEvent arg0)
    {
      System.exit(0);
    }
  }
 
  private String[] columnNamen = { "Spalte 1", "Spalte 2" };
  private DefaultTableModel tableModel;
  private JButton button;
  private JComponent contentPane = (JComponent) getContentPane();
 
  AccessDB()
  {
    super("CSV Test");
    setSize(800, 600);
    initLayout();
    setLocationRelativeTo(null);
    addWindowListener(new MeinWindowListener());
    setVisible(true);
    setResizable(true);
  }
 
  void initLayout()
  {
    contentPane.setLayout(new BorderLayout());
 
    tableModel = new DefaultTableModel(null, columnNamen);
    JTable tableZahlen = new JTable(tableModel);
    tableZahlen.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
 
    JScrollPane scrollPane = new JScrollPane(tableZahlen);
    scrollPane.setPreferredSize(new Dimension(300, 300));
 
    JPanel jpTable = new JPanel();
    jpTable.add("Center", scrollPane);
    contentPane.add("West", jpTable);
 
    button = new JButton("Einlesen");
    button.addActionListener(new ActionListener()
          {
            public void actionPerformed(ActionEvent e)
            {
              readFile();
            }
          });
 
    JPanel jpButton = new JPanel();
    jpButton.add(button);
    contentPane.add("South", jpButton);
 
  }
 
  /**
   * 
   */
  protected void readFile()
  {
    try{
      BufferedReader reader = new BufferedReader(new FileReader("home\\markus\\Desktop\\test.csv"));
      
      String strLine;
      while ( (strLine = reader.readLine()) != null )
      {
        String[] items = strLine.split(";");
        tableModel.addRow(items);
      }
      tableModel.fireTableDataChanged();
    }
    catch(FileNotFoundException e) {}
    catch(IOException e) {}
  }
 
  public static void main(String[] args)
  {
 
    AccessDB frame = new AccessDB();
    frame.setLocation(150, 90);
    frame.setSize(600, 500);
    frame.setResizable(true);
    frame.setVisible(true);
  }
}
```


csv-Datei:

Stunde;Montag
1;Mathe
2;Sport
3;Sport


----------



## HerlitzP (24. Dez 2011)

Hallo,

dein Pfad bei Zeile 84 wird falsch sein.
Unter Ubuntu sieht es so aus:

 [JAVA=84]BufferedReader reader = new BufferedReader(new FileReader("/home/ubuntu/Dokumente/test.csv"));[/code]

Das Programm funktioniert ebenfalls.



Gruß HerlitzP


----------



## Marcinek (24. Dez 2011)

Es ist nicht besonders gut, wenn man die Exceptions einfach "verschluckt". Genau solche Fehler, wie fehlende DAtei können niemals erkannt werden.

Gruß

Martin


----------



## JanHH (28. Dez 2011)

aber hat jetzt nix mit datenbanken zu tun


----------

