如何保护打开的文本文件不被java写入
我试图保护打开的txt文件不被写入。我找到了canRead()和canWrite()方法,但它们在我的代码中没有用处。关闭文件后,更改已完成 下面是我的一段代码:如何保护打开的文本文件不被java写入,java,file,Java,File,我试图保护打开的txt文件不被写入。我找到了canRead()和canWrite()方法,但它们在我的代码中没有用处。关闭文件后,更改已完成 下面是我的一段代码: private void filesMethod(String directoryName, String fileExtension, String textFind, String textSet) { File file = new File(directoryName); File[]
private void filesMethod(String directoryName, String fileExtension, String textFind, String textSet)
{
File file = new File(directoryName);
File[] foundFiles = file.listFiles();
if(foundFiles != null)
{
for(File f : foundFiles)
{
if(f.isFile())
{
if(!f.canRead())
{
continue;
}
...
}
else if(f.isDirectory())
filesMethod(f.getAbsolutePath(), fileExtension, textFind, textSet);
}
}
}
如果文件处于打开状态,则方法canRead()返回TRUE,但我正在搜索一些在本例中返回false的方法…您可以从文件中删除用户的读取权限,但这会有问题(如果您的程序在还原之前崩溃,您的用户可能会抱怨) 解决此问题的一种更常见的方法是在打开文件时锁定文件,这样可以确保在关闭文件之前无法再次打开文件(如果程序崩溃,操作系统会为您解除锁定)。(A)您是否意识到锁定文件不会阻止其他进程接触它,除非它们 也使用锁吗? (b) 您必须通过可写通道锁定。通过“rw”中的RandomAccessFile获取锁
模式,然后打开您的FileInputStream。一定要把两个都关上 你所说的“改变”是什么意思?你的问题很不清楚。当文件打开时,我不想更改它。你在找一个吗?要使它在不同的平台上工作,这将是非常困难的。您正在进入操作系统特定的命令。请查看这些命令是否有帮助。