在 Eclipse 中 运行 java 程序更改文件
Change files while running java program in Eclipse
我正在 运行ning 一个从特定文件读取信息的程序。如果在 运行 运行程序时,我更改了该文件的内容或将其删除,程序是否会 运行 不正确?
类似地,我有一个程序可以在我的工作区中创建一个文件。如果我 运行 这个程序和 运行 它再次使用不同的参数,而第一个 运行 仍在继续,正在创建的文件是否会被替换和覆盖?
取决于您阅读内容的方式以及OS本身。通常有一个读取缓冲区,该缓冲区使用 OS 实际服务的文件的当前内容填充。如果您在读取时删除文件,通常会抛出一个 IOException
.
为了相对确定在您阅读文件时没有其他人更改内容(或删除文件),您可以在 java 中使用 file-lock。
第二个问题要看时间,一个Stream或者Reader会有一个光标指向文件里面的位置。如果第二个程序成功替换了第一个程序打开的文件但小于第一个程序的游标,则会在第一个程序的下一个 read
-命令中抛出 IOException,因为游标实际上是 超出文件范围。
我正在 运行ning 一个从特定文件读取信息的程序。如果在 运行 运行程序时,我更改了该文件的内容或将其删除,程序是否会 运行 不正确?
类似地,我有一个程序可以在我的工作区中创建一个文件。如果我 运行 这个程序和 运行 它再次使用不同的参数,而第一个 运行 仍在继续,正在创建的文件是否会被替换和覆盖?
取决于您阅读内容的方式以及OS本身。通常有一个读取缓冲区,该缓冲区使用 OS 实际服务的文件的当前内容填充。如果您在读取时删除文件,通常会抛出一个 IOException
.
为了相对确定在您阅读文件时没有其他人更改内容(或删除文件),您可以在 java 中使用 file-lock。
第二个问题要看时间,一个Stream或者Reader会有一个光标指向文件里面的位置。如果第二个程序成功替换了第一个程序打开的文件但小于第一个程序的游标,则会在第一个程序的下一个 read
-命令中抛出 IOException,因为游标实际上是 超出文件范围。