就是读写那里一直不成功
该回答引用GPTᴼᴾᴱᴺᴬᴵ
可以使用Java中的CSV(Comma-Separated Values)文件格式来保存 Swing 表格的数据,这种格式可以包含文字和数字,同时也比较容易读写。以下是一个简单的示例代码:
保存数据到 CSV 文件:
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JTable;
import javax.swing.table.TableModel;
public class TableDataWriter {
public static void writeTableData(JTable table, String fileName) throws IOException {
TableModel model = table.getModel();
FileWriter writer = new FileWriter(fileName);
// 写入表头
for (int i = 0; i < model.getColumnCount(); i++) {
writer.write(model.getColumnName(i) + ",");
}
writer.write("\n");
// 写入数据
for (int i = 0; i < model.getRowCount(); i++) {
for (int j = 0; j < model.getColumnCount(); j++) {
Object data = model.getValueAt(i, j);
if (data != null) {
writer.write(data.toString());
}
if (j != model.getColumnCount() - 1) {
writer.write(",");
}
}
writer.write("\n");
}
writer.close();
}
}
读取 CSV 文件并载入数据到 Swing 表格:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class TableDataReader {
public static void readTableData(JTable table, String fileName) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(fileName));
String line;
// 读取表头
if ((line = reader.readLine()) != null) {
String[] columnNames = line.split(",");
DefaultTableModel model = new DefaultTableModel(columnNames, 0);
table.setModel(model);
}
// 读取数据
while ((line = reader.readLine()) != null) {
String[] data = line.split(",");
DefaultTableModel model = (DefaultTableModel) table.getModel();
model.addRow(data);
}
reader.close();
}
}
使用示例:
JTable table = new JTable();
// ... 添加数据到表格 ...
// 保存表格数据到 CSV 文件
TableDataWriter.writeTableData(table, "data.csv");
// 从 CSV 文件载入数据到表格
TableDataReader.readTableData(table, "data.csv");
注意:以上示例代码仅供参考,实际使用时需要根据具体的需求进行修改和完善。