所以我的程序中有一个JTable,它有4列
ID(int)-名称(string)-数量(int)-用法(int)
每次填充JTable时,它都有不同数量的数据。我想做的是从表中获取所有数据(IE X的行数为5),然后将所有数据保存到字符串数组中。或者,如果您有更好的方法。
最终,我想获取表数据并将其保存到文本文件中。我查看了其他SOF问题,并看到了对象方法,但不确定是否可以满足我的需求。
有想法吗?
编辑:当前代码(正在工作,但看起来很脏;对吗?)
String[][] tableString = new String[table_Drops.getRowCount()][table_Drops.getColumnCount()];
for (int i = 0; i < table_Drops.getRowCount(); i++) {
tableString[i][0] = String.valueOf(table_Drops.getValueAt(i, 0));
tableString[i][1] = String.valueOf(table_Drops.getValueAt(i, 2));
tableString[i][2] = String.valueOf(table_Drops.getValueAt(i, 3));
tableString[i][3] = String.valueOf(table_Drops.getValueAt(i, 4));
}
答案 0 :(得分:0)
您的代码应该可以使用,唯一不干净的部分是访问JTable
时拥有的幻数。您可以为此使用嵌套循环。
使用File
直接将数据写入FileWriter
:
private static void writeTableDataByRowAmount(JTable table, int rows) throws IOException
{
String pathToFile = "C:\\Users\\bob\\Desktop\\file.txt";
String text = "";
for(int i=0 ; i<rows ; i++)
{
for(int j=0 ; j<table.getColumnCount() ; j++)
{
text += table.getValueAt(i, j);
text += " ";
}
}
BufferedWriter writer = new BufferedWriter(new FileWriter(pathToFile));
writer.write(text);
writer.close();
}