import java.awt.Dimension;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
public class ReadCsv extends JFrame {
public static void main(String[] args) {
ReadCsv rc = new ReadCsv();
File file = new File("d:\\test.csv");
TableModel playerInfo = getFileStats(file);
JTable jt = new JTable(playerInfo);
jt.setPreferredScrollableViewportSize(new Dimension(400, 80));
rc.getContentPane().add(jt);
rc.setTitle("ReadCsv Table");
rc.setDefaultCloseOperation(EXIT_ON_CLOSE);
rc.setSize(300, 250);
rc.setVisible(true);
}
private static TableModel getFileStats(File a) {
String data;
Object[] object = null;
int columnCount = 0;//文件中最大行的列数
DefaultTableModel dt = new DefaultTableModel();
try {
BufferedReader br = new BufferedReader(new FileReader(a));
//不是文件尾一直读
while ((data = br.readLine()) != null) {
object = data.split(",");
//如果这行的列数大于最大的,那么再增加一列
if (object.length > columnCount) {
for(int i=0;i
}
columnCount = object.length;
}
//添加一行
dt.addRow(object);
}
;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return dt;
}
}
import java.io.*;
import javax.swing.*;
import javax.swing.table.*;
public class csvFileRead extends JFrame{
private JTable jTable1;
private JScrollPane jScrollPane;
private DefaultTableModel tableModel;
private JPanel jPanel1;
private String fileName;
public csvFileRead() {
fileName = "yourFileName";
jPanel1 = new JPanel();
jScrollPane = new JScrollPane();
try{
BufferedReader bf = new BufferedReader(new InputStreamReader(new FileInputStream(new File(fileName))));
String line = null;
line = bf.readLine();
String [] head = line.split(",");
Object [][] silencer = {};
//String[] dataType =new String[head.length];
tableModel = new DefaultTableModel(silencer,head);
jTable1 = new JTable(tableModel);
jScrollPane = new JScrollPane(jTable1);
jPanel1.add(jScrollPane);
this.add(jPanel1);
while((line = bf.readLine()) != null){
//System.out.println(line);
tableModel.addRow(line.split(","));
}
}catch(Exception e){
e.printStackTrace();
}
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setBounds(100,100,500,300);
this.setVisible(true);
}
}