先举几个可以删除掉文件和删除不掉文件的例子(先在F盘创建test1.txt文件,然后可以直接拷贝代码到IDE执行),最后总结下原因:

例子一:下面的例子毫无疑问是能够删除掉文件的

importjava.io.File;importjava.io.IOException;public classTest {public static void main(String[] args) throwsIOException {

File file= new File("F:/test1.txt");

file.delete();

}

}

原因:一个进程内(或者线程)单个线程执行,不存在资源共享的问题,所以可以删除。

例子二:下面的例子会删除成功,但是后面会报找不到文件的异常

importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;public classTest {public static void main(String[] args) throwsIOException {

FileOutputStream fos= null;

File file= new File("F:/test1.txt");if (!file.exists()) {

file.createNewFile();//构造写入文件内容

fos = newFileOutputStream(file);

fos.write("Hello Wolrd".getBytes());

}

file.delete();

InputStream inputStream= newFileInputStream(file);

}

}

原因:即使后面的InputStream使用到file,但是红线处的delete方法已经把文件删除了,所以会报找不到系统文件的异常。接着看下面的例子。

例子三:下面的例子会删除失败,原因是InputStream正在使用file,IO流还没有关闭

importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;public classTest {public static void main(String[] args) throwsIOException {

FileOutputStream fos= null;

File file= new File("F:/test1.txt");if (!file.exists()) {

file.createNewFile();//构造写入文件内容

fos = newFileOutputStream(file);

fos.write("Hello Wolrd".getBytes());

}

InputStream inputStream= newFileInputStream(file);

file.delete();

}

}

删除失败,原因是后面的InputStream使用到file,而且InputStream没有关闭流,所以导致删除失败。

例子四:下面的例子会删除成功,原因是后面的InputStream先关闭IO流了再删除

importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;public classTest {public static void main(String[] args) throwsIOException {

FileOutputStream fos= null;

File file= new File("F:/test1.txt");if (!file.exists()) {

file.createNewFile();//构造写入文件内容

fos = newFileOutputStream(file);

fos.write("Hello Wolrd".getBytes());

}

InputStream inputStream= newFileInputStream(file);//关闭流

if (inputStream != null) {

inputStream.close();

}

file.delete();

}

}

原因:删除成功,原因是后面的InputStream先关闭IO流了再调用delete方法删除文件,可以和例子三对比下不同之处就明白了。

接下来总结File的delete方法需要注意的一些地方:

1. 如果要删除的文件正在被占用,文件会删不掉,例如别的程序还在对文件进行读取操作,没来得及释放文件,后边的程序就试图删除该文件,会导致删除失败。

2. 使用IO操作文件的过程中要记得关闭流,这是做程序员的最基本素质。

java 文件删除不了_java的File类的 delete方法删不掉文件的原因分析相关推荐

  1. java 文件删除不了File类的delete方法删不掉文件的原因分析

    File directory = null;String path = tempPath + File.separator + fileName;directory = new File(path); ...

  2. java 获取子文件夹_JAVA之File类 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件...

    package ioTest.io3; import java.io.File; /* * 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件 . * 并将文件夹和文件名称打印在控制台上面.并且要 ...

  3. java的file类中的方法_java中File类的使用方法|chu

    构造函数 public class FileDemo { public static void main(String[] args){ //构造函数File(String pathname) Fil ...

  4. java的setquality值多少_java使用JPEGEncodeParam类的setQuality方法进行高质量图片缩放类(转)...

    java使用JPEGEncodeParam类的setQuality方法进行高质量图片缩放类(转) 找了很多都不理想,最后找个到老外写的,不得不承认老外写的确实牛B 主要是:JPEGImageEncod ...

  5. 第三次学JAVA再学不好就吃翔(part99)--File类

    学习笔记,仅供参考,有错必究 文章目录 File类 构造方法 举个例子 File类创建功能 举个例子 File类的重命名及删除功能 举个例子 注意事项 File类的判断功能 File类的获取功能 举个 ...

  6. Java 语言基础(异常机制和File类,IO流,多线程,网络编程,反射机制)

    原文:Java 语言基础(异常机制和File类,IO流,多线程,网络编程,反射机制) 异常机制和File类 异常机制 基本概念 异常就是"不正常"的含义,在 Java 语言中主要指 ...

  7. File类常用的方法以及

    File类和流无关,不能完成文件的读取 File是文件和目录路径名的抽象表示形式--代表的是硬盘上的Directory(目录)和file(文件) public static void main(Str ...

  8. java中file类_Java中file类

    File类的概述:File更应该叫做一个路径,文件路径或者文件夹路径 ,路径分为绝对路径和相对路径,绝对路径是一个固定的路径,从盘符开始,相对路径相对于某个位置,在eclipse下是指当前项目下,在d ...

  9. java file类包_Java中File类的常用API

    Java.io包下的File类实现了Serializable和Comparable两个接口 1.创建文件 注意: 1).如果D盘下file文件夹不存在,则抛出异常;如果D盘下file文件夹存在,则创建 ...

  10. java file用法_Java File 类的使用方法详解(转)

    转自:http://www.codeceo.com/article/java-file-class.html Java File类的功能非常强大,利用Java基本上可以对文件进行所有的操作.本文将对J ...

最新文章

  1. opencv算法+人脸检测
  2. 使用迭代查找一个list中最小和最大值,并返回一个tuple。
  3. 022_applescript快速入门教程
  4. Cisco ACL 一例
  5. 加速度随机游走_IMU Noise Model
  6. 余承东 鸿蒙不是手机,鸿蒙手机,来了!余承东:没有人会是一座孤岛
  7. Maven精选系列--三种仓库详解
  8. jax-ws cxf_Apache CXF – JAX-WS –简单教程
  9. 记忆讲师石伟华微信公众号2017所有文章汇总(待更新)
  10. 施一公院士关于科研、读博的精彩演讲
  11. 计算机突然无法黑屏无法启动不了,计算机突然死机,然后无法启动,并且屏幕保持黑屏。...
  12. 终于有人对语音技术来了次彻头彻尾的批判!
  13. TensorFlow精进之路(一):Softmax回归模型训练MNIST
  14. 第六步_安装SSH服务
  15. 振动噪声测试分析软件,DASP-V11专业版 振动噪声应变冲击
  16. remapkey不能打开注册表_卸载 AutoCAD 清理注册表
  17. 嵌入式环境搭建之zmodem
  18. 思科实验3.数据链路层:生成树配置
  19. 2017-01-01 调停者模式
  20. director(director)

热门文章

  1. linux tar文件如何压缩文件,在 Linux 上压缩文件的 5 种方法
  2. 非结构化数据解决方案:优化、优化、优化
  3. Yahoo 无插件网页媒体播放器
  4. CPU输入/输出的控制方式有哪些?
  5. 防火墙结构之双重宿主主机结构
  6. 普通糖尿病人1周食谱
  7. 图像质量评价之衡量标准
  8. python 钉钉导出Excel考勤统计
  9. Unity 资源商店无法登陆,提示链接失效 的解决办法
  10. 基于图书管理系统的需求分析之可行性分析安全需求分析系统需求分析