[英]Jtable data to txt
我正在尝试将我的 jTable 导出到文本文件。 这是我的代码
for (int i = 0; i < table.getRowCount(); i++) {
for (int y = 0; y < table.getColumnCount(); y++) {
if (table.getValueAt(i, y) != null) {
bw.write(table.getValueAt(i, y) + " ");
}
}
bw.newLine();
}
一切正常,所有单元格都填充了值。 但是当我只填充一半的单元格时,导出并不完美。 缺少最后一个值。 例如:
[value1][value2][value3]
[value4][value5][value6]
[value7][value8][value9]
将所有值打印到文本文件。 但是这个:
[value1][value2][value3]
[value4][value5][value6]
[null][null][null]
仅打印 value1、value2、value3、value4 和 value5。 问题出在哪儿?
请尝试以下操作:
public void writeTXT(JTable table) throws IOException, ClassNotFoundException, SQLException {
Writer writer = null;
try{
writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("filename.txt")));
StringBuffer bufferHeader = new StringBuffer();
for(int i = 0; i<table.getColumnCount();i++){
bufferHeader.append(table.getColumnName(i));
if(i!=table.getColumnCount()) bufferHeader.append(" ");
}
writer.write(bufferHeader.toString()+"\r\n");
for(int j = 0; j<table.getRowCount(); j++){
StringBuffer buffer = new StringBuffer();
for (int k = 0; k<table.getColumnCount(); k++){
buffer.append(table.getValueAt(j,k));
if(k!=table.getColumnCount()) buffer.append(" ");
}
writer.write(buffer.toString()+"\r\n");
}
}finally{
writer.close();
}
}
如果您没有列名/不需要它们,请不要包含第一个 for 循环。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.