title: Reading data from a specific CSV file and displaying it in a JTable
body: <p>About this question:
  <a href="https://stackoverflow.com/questions/11353875/reading-data-from-csv-file-and-displaying-it-in-a-jtable">Reading data from CSV file and displaying it in a JTable</a></p>
  
  <p>I tried to adapt the program of this question to make it fit to my need but it is making mistakes.
  I want the program to display a file located in the root of my project (so I have to write <code>File DataFile = new File("res.csv");</code>) that's all.
  The problem is that it displays only 2 lines, when 4 lines are supposed to be displayed.</p>
  
  <p>Here is the code :</p>
  
  <pre><code>import java.util.*;
  import java.awt.event.*;
  import javax.swing.*;
  import java.awt.BorderLayout;
  import java.awt.*;
  import javax.swing.border.EmptyBorder;
  import java.io.*;
  import javax.swing.table.*;
  
  public class T1Data extends JPanel {
      private final JTable table;
  
      public T1Data() {
          super(new BorderLayout(3, 3));
  
          this.table = new JTable(new MyModel());
          this.table.setPreferredScrollableViewportSize(new Dimension(700, 70));
          this.table.setFillsViewportHeight(true);
  
          JPanel ButtonOpen = new JPanel(new FlowLayout(FlowLayout.CENTER));
          add(ButtonOpen, BorderLayout.SOUTH);
  
          // Create the scroll pane and add the table to it.
          JScrollPane scrollPane = new JScrollPane(table);
  
          // Add the scroll pane to this panel.
          add(scrollPane, BorderLayout.CENTER);
  
          // add a nice border
          setBorder(new EmptyBorder(5, 5, 5, 5));
  
          CSVFile Rd = new CSVFile();
          MyModel NewModel = new MyModel();
          this.table.setModel(NewModel);
          File DataFile = new File("res.csv");
          ArrayList&lt;String[]&gt; Rs2 = Rd.ReadCSVfile(DataFile);
  
          NewModel.AddCSVData(Rs2);
          System.out.println("Rows: " + NewModel.getRowCount());
          System.out.println("Cols: " + NewModel.getColumnCount());
  
      }
  
      // Method for reading CSV file
      public class CSVFile {
          private ArrayList&lt;String[]&gt; Rs = new ArrayList&lt;&gt;();
          private String[] OneRow;
  
          public ArrayList&lt;String[]&gt; ReadCSVfile(File DataFile) {
              try {
                  BufferedReader brd = new BufferedReader(
                          new FileReader(DataFile));
  
                  while (brd.readLine() != null) {
                      String st = brd.readLine();
                      OneRow = st.split(",|\\s|;");
                      Rs.add(OneRow);
                      System.out.println(Arrays.toString(OneRow));
                  } // end of while
              } // end of try
              catch (Exception e) {
                  String errmsg = e.getMessage();
                  System.out.println("File not found:" + errmsg);
              } // end of Catch
              return Rs;
          }// end of ReadFile method
      }// end of CSVFile class
  
      private static void createAndShowGUI() {
          // Create and set up the window.
          JFrame frame = new JFrame("T1Data");
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  
          // Create and set up the content pane.
          T1Data newContentPane = new T1Data();
          frame.setContentPane(newContentPane);
  
          // Display the window.
          frame.pack();
          frame.setVisible(true);
      }
  
      class MyModel extends AbstractTableModel {
          private String[] columnNames = { "1", "2", "3", "4", "5", "6", "7", "8" };
          private ArrayList&lt;String[]&gt; Data = new ArrayList&lt;&gt;();
  
          public void AddCSVData(ArrayList&lt;String[]&gt; DataIn) {
              this.Data = DataIn;
              this.fireTableDataChanged();
          }
  
          @Override
          public int getColumnCount() {
              return columnNames.length;// length;
          }
  
          @Override
          public int getRowCount() {
              return Data.size();
          }
  
          @Override
          public String getColumnName(int col) {
              return columnNames[col];
          }
  
          @Override
          public Object getValueAt(int row, int col) {
              return Data.get(row)[col];
  
          }
      }
  
      public static void main(String[] args) {
          // Schedule a job for the event-dispatching thread:
          // creating and showing this application's GUI.
          javax.swing.SwingUtilities.invokeLater(new Runnable() {
              public void run() {
                  createAndShowGUI();
              }
          });
      }
  }
  </code></pre>
  
  <p>Content of CSV file: with "." that seems to bother :</p>
  
  <pre><code>Valeur par défaut,07/04/2014,0.5,1,0,0,0
  Valeur par défaut,07/04/2014,0.5,1,0,0,0
  Valeur par défaut,07/04/2014,0.5,1,0,0,0
  Valeur par défaut,07/04/2014,0.5,1,0,0,0
  Valeur par défaut,07/04/2014,0.5,1,0,0,0
  </code></pre>