我试图使用文件utils复制文件方法复制文件.我正在遇到一些有时会抛出异常的问题
java.io.IOException: Failed to copy full contents from 'path.xml' to localfile.xml
我已经google搜索并在代码中看到当目标文件长度与目标文件长度不同时抛出此异常,异常仅发生一些时间 - 这可能是由于我尝试复制的文件是一致的更新,所以我可能会在更新中捕获它(只是一个值更改的xml文件)
如果我把呼叫包裹在一个if(target.canRead())但是这似乎没什么区别.
有人可以帮忙吗?
*更新:*我无法锁定文件,因为它是通过第三方供应商写入的,这会导致各种问题.
我需要在unix/linux OS中锁定一个文件.我用谷歌搜索并阅读java.nio.channels Filelock和Reentrant File Lock.但两者都适用于Windows,但不适用于unix.有没有其他方法在unix中实现锁定文件?任何示例代码都将受到高度赞赏.
谢谢,Vignesh
我需要用Java阅读和处理一些大文件,我想知道,如果有一些明智的方法可以保护文件,当我正在阅读和处理它时,它不会被其他进程覆盖?
也就是说,某种方式使它成为只读,保持"开放"或某事......
这将在Windows环境中完成.
br,Touko
我需要在 Java 中实现某种进程间互斥锁。我正在考虑按照此线程中的建议使用 FileLock API 。我基本上会使用一个虚拟文件并在每个进程中锁定它。
这是最好的方法吗?或者是在标准 API 中构建的类似内容(我找不到)。
有关更多详细信息,请参见下文:
我编写了一个应用程序,它读取一些输入文件并根据它在其中找到的内容更新一些数据库表(它更复杂,但业务逻辑在这里无关紧要)。
我需要确保多个数据库更新之间的互斥。我试图用 LOCK TABLE 来实现这个,但是我使用的引擎不支持它。所以,我想在应用程序代码中实现锁定支持。
我有一个使用POSIX顾问锁来锁定文件的C++程序.也就是说,它使用POSIX fcntl系统调用进行锁定操作.我想要一个Java程序与该C++程序进行互操作,所以我希望我的Java程序也使用POSIX顾问锁.Java中的文件锁定应该使用标准FileLock类.但是关于如何实现锁定,API文档可以理解为模糊:
此文件锁定API旨在直接映射到底层操作系统的本机锁定工具.因此,无论编写这些程序的语言如何,所有可以访问该文件的程序都可以看到文件中保存的锁.
如果我在POSIX操作系统上运行Java(Oracles,Open JDK)的通用实现,或者更具体地说是GNU/Linux系统,可以安全地假设Java FileLock类使用POSIX咨询锁吗?
我有一个要求,将文件写入服务器。另一个应用程序有一个计划作业,它以特定的时间间隔读取文件。在我的写入完成之前,该文件不应该可读。我尝试过使用
File.isReadable(false)
Run Code Online (Sandbox Code Playgroud)
但这是行不通的。如果我仍在写入,调度程序将从文件中获取不完整的数据。
有什么解决方案吗?