我有一个Jtable,它在触发时显示以下内容。将JTable内容写入文本文件,同时保持Java格式
我怎么能写的所有内容到一个文本文件,同时保持其原有的格式。文本文件应该看起来像这样。
Line Number Error Solution Percentage(%)
6 in int 33%
这就是我到目前为止所尝试的。但只有值6被写入文件。任何帮助。
我的代码(仅主要部件):
private static final String[] columnNames = {"Line Number", "Error","Solution","Percentage (%)"};
static DefaultTableModel model = new DefaultTableModel(null,columnNames);
public static void DisplayMyJList(List<CaptureErrors> x) throws IOException
{
String [] myErrorDetails = new String[x.size()];
int i = 0;
int line,percentage;
String err, sol;
String aLine;
StringBuffer fileContent = new StringBuffer();
for(CaptureErrors e: x)
{
Vector row = new Vector();
row.add(e.getLinenumber());
row.add(e.getMyfounderror());
row.add(e.getMycorrection());
row.add(e.getMyPercentage()+"%");
model.addRow(row);
for (int i1 = 0; i1 < model.getRowCount(); i1++) {
Object cellValue = model.getValueAt(i1, 0);
// ... continue to read each cell in a row
fileContent.append(cellValue);
// ... continue to append each cell value
FileWriter fileWriter = new FileWriter(new File("C:\\Users\\Antish\\Desktop\\data.txt"));
fileWriter.write(fileContent.toString());
fileWriter.flush();
fileWriter.close();
}
更新我试图与2路和它给了我以下。我失去了原有的格式:
代码:
String separator = System.getProperty("line.separator");
try
{
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(file,true));
PrintWriter fileWriter = new PrintWriter(bufferedWriter);
for(int i1=0; i1<model.getRowCount(); ++i1)
{
for(int j=0; j<model.getColumnCount(); ++j)
{ String names = columnNames[counter];
String s = model.getValueAt(i1,j).toString();
fileWriter.print(names +" ");
fileWriter.append(separator);
fileWriter.print(s + " ");
counter ++;
}
fileWriter.println("");
}
fileWriter.close();
}catch(Exception e)
{
您需要编写格式化输出,并且可以使用PrintWriter的'printf(...)'方法。您可以通过阅读[java.util.Formatter API](http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html)或Google搜索来了解如何使用它。 – 2013-03-02 05:18:40