java - 在java中如何解锁文件或写入excel打开的文件

标签 java file fileoutputstream filelock

我目前正在编写一个输出到 excel 文件的程序。 (同样打开它读取) 我感觉用户在我的应用程序中修改之前会在 excel 中打开文件。 虽然我确实意识到我可以保存一个不那么整洁的新文件。

我正在寻找从 Excel 解锁文件或强制写入文件的方法,您能帮忙吗?

我需要找到一种在 Excel 中打开文件并且仍然能够从 java 写入文件的方法。

谢谢!

编辑:

要回答我为什么要解锁文件的问题,我正在使用的程序没有内置的 excel 查看器,只能根据标准化输入进行更新。

因此用户仍将在 excel 中查看文件。 如果他们需要先打开这个程序,那也没问题。

我猜另一种选择是如何在 Excel 仍然可以读取文件的情况下以写入权限打开文件?

目前打开时我正在使用 Apache POI HSSF/XSSF,一旦我的程序打开文件,如果我尝试在 excel 中打开它,我会收到以下错误:“Excel 无法打开文件,因为文件格式无效。确认文件没有损坏,并且文件扩展名与文件格式匹配。

最佳答案

文件被锁定是有充分理由的。试着从excel程序员的角度想问题。如果您编写一个锁定文件的程序,您希望独占访问该文件,因为您必须确保该文件在此期间未被修改。

因此,即使您可以解锁它,也可能会导致 excel 或其他程序崩溃,因为它可能会以不一致的状态读取文件。

我建议您查看该文件是否已锁定,如果是,则通知用户您要更新的文件已在另一个程序中打开。在您的程序可以继续之前,用户应该关闭此程序。

关于java - 在java中如何解锁文件或写入excel打开的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18823849/

相关文章:

java - 在牛津词典中搜索

c++ - 是否有任何免费程序可以制作从头文件中提取的文件依赖关系图?

java - 使用 StreamingOutput 对象写入 Excel 文件。 (java.lang.ClassCastException)

java - 从 asyncTask 中的异常访问 View 时出现问题

java - 如何通过 Selenium 验证鼠标悬停时星级是否突出显示

java - 从 Java 获取毫秒分辨率的文件 mtime

java - 抽象如何隐藏 OOP 中的主要功能

Java:如何将文件从 JTable 拖到 native 文件系统?

c++ - outData.txt 没有输出正确的值

java - 没有字符串打印到文件中