如何将 JTable 的内容保存到文件中,然后在需要时将它们加载回来? [关闭]

Posted

技术标签:

【中文标题】如何将 JTable 的内容保存到文件中,然后在需要时将它们加载回来? [关闭]【英文标题】:How can I save the contents of a JTable to a file and then load them back when needed? [closed] 【发布时间】:2012-12-13 05:59:06 【问题描述】:

很抱歉,这是我第一次在这里发帖,我真的非常不擅长 java。

我的一个面板中有一个JTable,我需要做的就是将内容保存到一个文件中。当某个字符串输入到JTextfield 时,文件会加载并填充JTable

我不知道从哪里开始,我在 youtube 上搜索了帮助,但运气不好。请帮帮我?

【问题讨论】:

从哪里将数据填充到 JTable 中? 我正在使用 DefaultTableModel 添加行和列。 也可以考虑序列化JTable,我相信会奏效。 @Aaron 这确实有效,但是只要他更改了一次代码,序列化密钥就会更改,并且所有旧版本都变得完全不兼容。 【参考方案1】:
 public Object[][] getTableData (JTable table) 
       (DefaultTableModel) dtm = (DefaultTableModel) table.getModel();
           int nRow = dtm.getRowCount(), nCol = dtm.getColumnCount();
           Object[][] tableData = new Object[nRow][nCol];
           for (int i = 0 ; i < nRow ; i++)
               for (int j = 0 ; j < nCol ; j++)
                   tableData[i][j] = dtm.getValueAt(i,j);
           return tableData;
       

您可以将 Jtable 中的值存储为数组,

然后将其写入文件...

    public void writeToFile()
      
      try
      FileWriter fstream = new FileWriter("out.txt");
      BufferedWriter out = new BufferedWriter(fstream);
      for(int i=0;i<array.length;i++)
            out.write(array[i].getBytes());
      
      out.close();
      catch (Exception e)
      System.err.println("Error: " + e.getMessage());
      

【讨论】:

谢谢,这让它更清楚了,但我遇到问题的部分实际上是将数组写入文件。 您遇到了什么问题? 我不知道如何编写代码将数组写入文件。 我已经编辑了答案...如果还有其他问题请告诉我...如果没有,请将其标记为答案... @SrinivasB: writeToFile() 无法编译。 arraytableData 有什么关系? Jay Lee 应该如何从out.txt 重构TableModel

以上是关于如何将 JTable 的内容保存到文件中,然后在需要时将它们加载回来? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何将 AbstractTableModel 保存到文件中?

如何将jtable的内容复制到剪贴板

将编辑过的单元格从 JTable 保存到数据库

在jTable(自动保存)中编辑后,如何将单元格中的数据保存在sql中?

如何将所有JTable行转换为字符串数组?

如何更改Jtable中的数据并且更新到数据库中?