jxl中closures程序的数据损坏

我使用jxl将用户input的数据存储到Excel电子表格中。 我希望能够在运行时closures我的程序,并打开Excel电子表格并查看数据。 每当我这样做,我得到一个消息说,它是在一个不同于文件扩展名中指定的格式。 这是我的代码。

import java.io.File; import java.io.IOException; import java.util.Scanner; import jxl.*; import jxl.write.*; import jxl.Workbook; import jxl.read.biff.BiffException; import jxl.write.Label; import jxl.write.Number; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import jxl.write.WriteException; import jxl.write.biff.RowsExceededException; public class ReadWriteTest { public static void main(String[] args) throws BiffException, IOException, RowsExceededException, WriteException { Scanner scan = new Scanner(System.in); int i = 1; Integer iAlliance = -1; File test = new File("C:\\test.xls"); WritableWorkbook wb = Workbook.createWorkbook(test); while(iAlliance != 0 && i != 5) { WritableSheet sheet = wb.createSheet("Sheet" + i, i); iAlliance = scan.nextInt(); WriteExcel.addNumber(sheet, 0, 0, iAlliance); iAlliance = scan.nextInt(); WriteExcel.addNumber(sheet, 1, 0, iAlliance); i++; } wb.write(); wb.close(); } } 

“运行时closures我的程序”

你的代码需要处理。 现在,它只是在任何时候被杀死(可能是在这个循环中),并没有发生任何事情。 WriteableWorkbook永远不会调用write()close() ,并且该文件可能已损坏。

所以看到这个,试着在不同的地方添加一些简单的输出,比如“得到第XXX行”。 运行它,closures它,看看它有多远。

你可能需要用try-catch-finally来包装你的大部分代码。 循环在try里面, catch在键盘上处理那个讨厌的人closures的闪电般的程序, finallyclosuresworkbook文件。