Java Jtable数据到txt

Java Jtable数据到txt,java,swing,file,netbeans,jtable,Java,Swing,File,Netbeans,Jtable,我正在尝试将我的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.getValueA

我正在尝试将我的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]
    [null][null][null]
仅打印值1、值2、值3、值4和值5。 问题在哪里

尝试以下操作:

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循环。

我对这个问题投了否决票,因为没有证据表明对此代码执行了任何调试。请您的问题向我们展示您的调试发现了什么,以及关于特定代码行的特定问题。请看:和。可能是重复的。垃圾上帝-非常感谢。它起作用了。你可以把你的答案写下来作为答案,这样我就可以给你的答案打分了
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();
  }
}