繁体   English   中英

Java Apache IOUtils:将文件读入字节数组后如何删除文件?

[英]Java apache IOUtils: how to delete a file after read it into a byte array?

因此,我尝试使用apache公共库将文件读入字节数组,然后删除文件本身。 但是我做不到。 有人可以让我知道为什么吗?

  File   aFile = new File("path_To_A_PDF_File");
  byte[] fileBytes = IOUtils.toByteArray(new FileInputStream(aFile));
  boolean result = aFile.delete();

  System.out.println("is file " + aFile.getAbsolutePath() + " deleted? " + result);

如何删除该文件? 谢谢

您必须关闭通过以下方式打开的流:new FileInputStream(aFile)

File类包含一个可帮助解决此问题的方法。 调用deleteOnExit()然后让JVM为您清理它。

aFile.deleteOnExit();

根据链接的Javadoc,

请求在虚拟机终止时删除此抽象路径名表示的文件或目录。

我认为您仍然在aFile上打开了FileInputSteam。 在其上尝试使用IOUtils.closeQuietly()(现在需要将其设置为局部变量,而不是匿名变量)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM