Java Apache commons io FileUtils.deleteDirectory工作不正常
我对commons ioJava Apache commons io FileUtils.deleteDirectory工作不正常,java,io,apache-commons-io,Java,Io,Apache Commons Io,我对commons ioFileUtils.deleteDirectory(文件)有问题。我只是打电话 FileUtils.deleteDirectory(new File("/tmp/dir")); 目录结构为: tmp/ - dir/ - a/ - b/ - c.txt 我尝试调试它,结果如下: 在删除c.txt之前,我停止FileUtils中的程序如果(!file.delete()) 文件存在,我可以重命名它(我想它没有被锁定) file.d
FileUtils.deleteDirectory(文件)
有问题。我只是打电话
FileUtils.deleteDirectory(new File("/tmp/dir"));
目录结构为:
tmp/
- dir/
- a/
- b/
- c.txt
我尝试调试它,结果如下:
file.delete()
delete()
返回false,并引发“无法删除目录/tmp/dir/a/b/”异常ByteArrayOutputStream baos = new ByteArrayOutputStream();
InputStream is = new FileInputStream(new File("/tmp/dir/a/b/c.txt"));
IOUtils.copy(is, baos);
String content = new String(baos.toByteArray());
我改为(现在可以了):
这只是一个例子,我知道正确关闭所有流(使用try finally)很重要。BufferedInputStream在这里也应该很有用。No
IOException
被抛出?是的,这在64位Windows 7上发生。没有例外,一切都很顺利。与其编辑你的问题以包含答案,不如发布答案。
ByteArrayOutputStream baos = new ByteArrayOutputStream();
InputStream is = new FileInputStream(new File("/tmp/dir/a/b/c.txt"));
IOUtils.copy(is, baos);
// Close streams!
baos.flush();
baos.close();
is.close(); // This is the most important!
String content = new String(baos.toByteArray());