我正在运行一个从特定文件中读取信息的程序。如果在运行程序时,我更改了该文件的内容或将其删除,程序是否无法正常运行?
在类似的说明中,我有一个程序在我的工作区中创建一个文件。如果我运行此程序并在第一次运行仍在进行时使用不同的参数再次运行它,那么正在创建的文件是否会被替换和覆盖?
答案 0 :(得分:1)
取决于如何您阅读内容和操作系统本身。通常有一个读缓冲区,该缓冲区使用OS实际提供的文件的当前内容填充。如果您在阅读时删除文件,通常会抛出IOException
。
为了确保在您阅读文件时没有其他人更改内容(或删除文件),您可以在java中使用file-lock。
第二个问题取决于时间,Stream或Reader将光标移动到文件内部的位置。如果第二个程序成功替换文件第一个程序opend但小于第一个程序的游标,则会在第一个程序的下一个read
- 命令上抛出IOException,因为游标实际上是超出文件范围。