java delete

作者:原创时间:2022-03-30
文档

   

java delete是什么,让我们一起了解一下。

delete是指删除,常用于编程语言中(C++,SQL等等)。而在java中的delete可以删除一个对象的属性,却不能删除一个变量,也不能删除一个函数,delete只有当一个属性无法被删除时才返回false。

为什么delete只有当一个属性无法被删除时才返回false呢?

举例说明:比如在项目中要删除文件夹, 只有一层, 下面有zip包, jpg图片, xml文件, 但是在删除时, 有一部分文件却删不掉, delete的结果是false。

示例代码如下:

public void deleteDir(File file)
{
if (file.exists())
{
 
File files[] = file.listFiles();
for (int i = 0; i < files.length; i++)
{
System.out.println("删除" + files[i].getAbsolutePath());
boolean b = files[i].delete();
System.out.println(b);
}
 
file.delete();
}
else
{
System.out.println("所删除的文件不存在!" + '\n');
}
 
}

上述业务逻辑是, 根据业务号从数据库读取该业务号下影像的路径,然后找到对应的文件并复制到以业务号命名的文件夹下,以业务号命名的文件夹放在指定的文件夹destdir下,然后然后根据影像信息生成xml报文。

当报文生成后, 将影像和报文打包成zip, 然后将zip通过第三方接口上传到影像平台。当一个业务上传成功后, 要删除以这个业务号命名的目录, 就是在删除时出现了以上描述的问题, 那么到底是哪个环节的问题?

一个是拷贝文件, 一个是生成zip包, 无非这两个地方, 所以, 统统加了赋空和回收的操作代码如下:

fos.flush();
fos.close();
fis.close();
fis = null;
fos = null;
System.gc();
public boolean zipMaterial(String dir, String busNO)
{
File directory = new File(dir);
File[] files = directory.listFiles();
 
try
{
FileOutputStream output = new FileOutputStream(new File(dir + busNO
+ ".zip"));
ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(
output));
 
for (int i = 0; i < files.length; i++)
{
InputStream in = new FileInputStream(files[i]);
ZipEntry e = new ZipEntry(files[i].getName());
out.putNextEntry(e);
 
int len = 0;
byte[] b = new byte[1024];
while ((len = in.read(b)) != -1)
{
out.write(b, 0, len);
out.flush();
}
 
out.closeEntry();
}
out.flush();
output.flush();
out.close();
output.close();
out = null;
output = null;
System.gc();
}
catch (FileNotFoundException e)
{
 
return false;
}
catch (IOException e)
{
 
return false;
}
 
return true;
}

再次运行测试后,就可以了。可见如果是文件, 可以删除, 但如果是目录, 必须是空的才可以删除。

以上就是小编今天的分享了,希望可以帮助到大家。

显示全文
java调用asmx接口 java dependency java dev java fastdfs java development java dict java fastjson java feign java divide java field java field获取值 java dockerfile java file.exists() java fileinputstream java findfirst java flatmap java dowhile java flink java drools java dto java获取绝对值 java调用c++ java调用c++接口 java delegate java decodeuri java decode java调python java decaf java读取本地excel java读取json java dataset java规则引擎 java dataframe java表单校验 java获得当前路径 java dashboard java获取随机数 java daemon java获取随机字符串 java ctp