在java中删除文件不起作用

在java中删除文件不起作用,java,Java,我把这段从互联网上获得的代码放在java程序中,但当我试图删除时,原始文件无法删除,临时文件也无法重命名为原始文件。这两个文件保留在文件夹中,其内容不变 我不确定您要删除的位置,但在主菜单的最后一行: fd.delete("person.txt",word); 不会删除任何内容,因为Object.equals(null)应始终返回false。(word为null) 如果您试图在循环中删除: // FilingDatabase fd= new FilingDatabase(); S

我把这段从互联网上获得的代码放在java程序中,但当我试图删除时,原始文件无法删除,临时文件也无法重命名为原始文件。这两个文件保留在文件夹中,其内容不变


我不确定您要删除的位置,但在主菜单的最后一行:

 fd.delete("person.txt",word); 
不会删除任何内容,因为
Object.equals(null)
应始终返回
false
。(
word
null

如果您试图在循环中删除:

 // FilingDatabase fd= new FilingDatabase();
 System.out.print("Enter word: ");
 word=in.next();
 //delete("person.txt",word);
它不会删除任何内容,因为
delete
行已被注释掉


关于删除和重命名文件,我不确定该告诉您什么,因为这对我很有效。

我不确定您要删除的位置,但在主菜单的最后一行:

 fd.delete("person.txt",word); 
不会删除任何内容,因为
Object.equals(null)
应始终返回
false
。(
word
null

如果您试图在循环中删除:

 // FilingDatabase fd= new FilingDatabase();
 System.out.print("Enter word: ");
 word=in.next();
 //delete("person.txt",word);
它不会删除任何内容,因为
delete
行已被注释掉


关于删除和重命名这些文件,我不知道该告诉你些什么,因为这对我来说很有效。

我不会去想你的代码。。。以及它试图做什么。(你听说过评论吗?Javadocs?你考虑过使用它们吗?)

然而,我想指出的是,在许多情况下,
delete
rename
都可能失败。在
删除
的情况下,包括以下内容:

  • 目标文件不存在
  • 目标文件确实存在,但应用程序没有访问父目录和/或删除该文件的权限
  • 目标对象是目录而不是文件
  • (在某些平台上)目标文件被锁定,因为此应用程序或另一个应用程序当前已将其打开
<> > <代码>重命名< /代码>,您必须考虑文件重命名(及其父目录)和试图移动的目录的存在、权限等。还有一个问题是重命名在不同的文件系统之间不起作用



不幸的是,这些方法(在
文件
类上)没有说明删除或重命名失败的原因。(新Java 7
文件上的方法
类do…)即使它们能够做到这一点,诊断也会受到OS syscalls报告的限制。在Unix/Linux的情况下,这是非常有限的。

我不想去想你的代码。。。以及它试图做什么。(你听说过评论吗?Javadocs?你考虑过使用它们吗?)

然而,我想指出的是,在许多情况下,
delete
rename
都可能失败。在
删除
的情况下,包括以下内容:

  • 目标文件不存在
  • 目标文件确实存在,但应用程序没有访问父目录和/或删除该文件的权限
  • 目标对象是目录而不是文件
  • (在某些平台上)目标文件被锁定,因为此应用程序或另一个应用程序当前已将其打开
<> > <代码>重命名< /代码>,您必须考虑文件重命名(及其父目录)和试图移动的目录的存在、权限等。还有一个问题是重命名在不同的文件系统之间不起作用



不幸的是,这些方法(在
文件
类上)没有说明删除或重命名失败的原因。(新Java 7
文件上的方法
类do…)即使它们能够做到这一点,诊断也会受到OS syscalls报告的限制。在Unix/Linux的情况下,这是非常有限的。

为什么不使用相同的
填充数据库
实例来运行
删除
(而不是创建两个不同的实例)?
fd.delete(“person.txt”,word)
为什么要在word中传递空值。@RanRag word在那里是空的,因为我试图根据用户的输入建立它。但它仍然不起作用。为什么不使用相同的
填充数据库
实例来
运行
删除
(而不是创建两个不同的实例)?
fd.delete(“person.txt”,word)
为什么要在word中传递空值。@RanRag word在那里是空的,因为我试图根据用户的输入来创建它。但它仍然不起作用。值得注意的是,虽然
文件
方法没有说明失败的原因,但在Java 7中,相应的方法会说明失败的原因(
删除
移动
)值得注意的是,虽然
文件
方法没有说明失败的原因,但在Java 7中,相应的方法会说明失败的原因(
delete
move
)。
 // FilingDatabase fd= new FilingDatabase();
 System.out.print("Enter word: ");
 word=in.next();
 //delete("person.txt",word);