我们有一个巨大的(旧的遗留Java)代码库,其中许多文件(大约5k)都有System.out.println.我们计划因清理/性能原因删除它们.我们如何编写一个脚本来替换它们而不会在代码中引入任何问题?脚本不能盲目删除它们,因为以下情况可能是一个问题:
if ()
some.code...
else
System.out.println(...);
DB.close();
Run Code Online (Sandbox Code Playgroud)
我想用';'代替它们.这将照顾上述情况.你还有其他问题吗?还有其他建议吗?
使用以下代码,不会保存对Excel电子表格所做的单元格值更改:
OPCPackage pkg = OPCPackage.open(inputFile);
XSSFWorkbook wb = new XSSFWorkbook(pkg);
ModifyWorkbook();
pkg.close();
Run Code Online (Sandbox Code Playgroud)
以下是我写的解决方法,但我不明白为什么这是必要的.
OPCPackage pkg = OPCPackage.open(inputFile);
XSSFWorkbook wb = new XSSFWorkbook(pkg);
ModifyWorkbook();
File tmp = File.createTempFile("tempSpreadsheet", ".xlsx");
FileOutputStream newExcelFile = new FileOutputStream(tmp);
wb.write(newExcelFile);
newExcelFile.close();
tmp.deleteOnExit();
pkg.close();
Run Code Online (Sandbox Code Playgroud)
关于主题的javadoc和指南表明.close()方法应该保存并关闭.在关闭之前检查已修改的单元格的值是否表示已进行更改,但单独使用pkg.close()方法不足以在关闭时将这些更改写入文件.