Java File.delete()返回false?

Java File.delete()返回false?,java,Java,首先我解释了架构,然后我会提出真正的问题 我正在使用三层体系结构。我完全设计了DL、BL以及它们的测试用例。 BL从DL获取数据,然后BL填充自己的数据结构。BL和DL中提供了Add()和Update()、Getter method()和Customer.data,当DL的Add方法运行时,将生成用于存储客户数据的数据 当BL的Add()方法运行时,首先填充数据结构,然后更新DL,然后使用新实体更新BL中的数据结构 在DL中,当我添加一个客户,然后更新它时,它工作正常 “但是当我在BL中添加一

首先我解释了架构,然后我会提出真正的问题

我正在使用三层体系结构。我完全设计了DL、BL以及它们的测试用例。 BL从DL获取数据,然后BL填充自己的数据结构。BL和DL中提供了Add()和Update()、Getter method()和Customer.data,当DL的Add方法运行时,将生成用于存储客户数据的数据

当BL的Add()方法运行时,首先填充数据结构,然后更新DL,然后使用新实体更新BL中的数据结构

在DL中,当我添加一个客户,然后更新它时,它工作正常

“但是当我在BL中添加一个客户并更新它时,getter方法在BL中不起作用”,我无法添加新客户

注:BL使用DL的更新方法

在DL的更新方法文件中,当我在DL的测试用例文件夹中运行add、Update时,delete()返回true 但当我在BL测试用例文件夹中运行add,update方法时,file.delete()返回false

我关闭了与文件关联的流,并且其他程序未使用该文件,我检查了权限。。但我不明白问题是什么

下面是更新()的代码 此方法检查代码是否存在如果代码存在,则检查名称是否存在。。如果存在,则抛出异常。。 验证完成后;此方法将原始文件的内容与客户一起复制到临时文件,然后将临时文件的内容复制到原始文件

//........... Code
while(randomAccessFile.getFilePointer()<randomAccessFile.length()) 
{
vCode=Integer.parseInt(randomAccessFile.readLine());
vName=randomAccessFile.readLine();
vOpeningBalance=Integer.parseInt(randomAccessFile.readLine());
vOpeningBalanceType=randomAccessFile.readLine().charAt(0);
if(vCode==customerDTOInterface.getCode()) 
{ 
access=1;
pos=randomAccessFile.getFilePointer(); randomAccessFile.seek(0);

while(randomAccessFile.getFilePointer()<randomAccessFile.length()) 
{
code=Integer.parseInt(randomAccessFile.readLine());
vName=randomAccessFile.readLine(); randomAccessFile.readLine();
randomAccessFile.readLine();
if(vName.equalsIgnoreCase(customerDTOInterface.getName())) 
{ 
throw new DAOException(vName + " exists with code as : " + code); 
} 
}

randomAccessFile.seek(pos);
trandomAccessFile.writeBytes(vCode+"\n"+customerDTOInterface.getName()
+"\n"+customerDTOInterface.getOpeningBalance()+"\n"+
customerDTOInterface.getOpeningBalanceType()+"\n");
} 
else 
{
trandomAccessFile.writeBytes(vCode+"\n"+vName+"\n"+vOpeningBalance+
"\n"+vOpeningBalanceType+"\n");
} 
} 
if(access==0)
{
trandomAccessFile.close();
tfile.delete();
throw new DAOException("Invalid Code DAO");
}
randomAccessFile.close();
trandomAccessFile.seek(0); 
file.delete();             //Delete Returns False here
.......... //More Code
/。。。。。。。。。。。代码

while(randomAccessFile.getFilePointer()我认为您应该在这里提供相关的代码片段

否则,很难确定会发生什么,但在一般的
文件中。删除通常不起作用,因为
权限问题,或者如果某人已持有与文件关联的句柄(对于Windows)

由于您使用的是Windows,第二个问题更可能是这种情况,很可能是您自己的应用程序