如何在写入文件之前关闭 selenium java 中的 excel 文件?

How to close the excel file in selenium java before writing to the file?

我在 Java 中有一个 selenium 测试脚本,用于读取和写入 excel 文件。问题是如果文件已经打开,它就无法写入文件。我希望我的脚本在写入文件之前自动关闭文件,以防用户忘记关闭 excel 文件。

下面是打开 excel 文件并从中读取的代码,即使文件已经打开,我从文件中读取也没有问题

// prepare excel file       
FileInputStream file = new FileInputStream(new
File(r.CONFIG.getProperty("testCaseFile")));
XSSFWorkbook workbook = new XSSFWorkbook(file);
XSSFSheet sheet = workbook.getSheetAt(6);  
sheetmyWaitVar.until(ExpectedConditions.elementToBeClickable(By.id("ZipCodeEntry"))).sendKeys(sheet.getRow(row).getCell(2).getStringCellValue());

下面是写入 excel 文件的代码。如果用户忘记在 运行 脚本之前关闭 excel 文件,脚本将在此处挂起。我正在尝试找到一种方法来在此处添加代码,该代码将在执行以下代码之前关闭文件

//write random first name to the same file
sheet.getRow(row).getCell(4).setCellValue(randomFirstName);
//write test result to the same file
sheet.getRow(row).getCell(25).setCellValue(testResult);
//write confirmation to the same file
sheet.getRow(row).getCell(23).setCellValue(confirmation); //write the confirmation number in the excel file
//write premium to the same file
sheet.getRow(row).getCell(24).setCellValue(premium); //write premium in the excel file
//enter timestamp
sheet.getRow(row).getCell(27).setCellValue(r.timeStamp());
//enter environment
sheet.getRow(row).getCell(26).setCellValue(r.CONFIG.getProperty("environment"));
FileOutputStream outFile =new FileOutputStream(new File(r.CONFIG.getProperty("testCaseFile")));
workbook.write(outFile);
outFile.close(); 

通常文件上的写锁是独占的,因此为了获得它,文件上不应有其他锁(由 OS 处理)。 我认为没有办法以编程方式解决此问题。

为什么不直接将您的内容写入新文件?