Java 中File类的createNewFile()与createTempFile(), delete和deleteOnExit区别
1. Java 中File类的createNewFile()与createTempFile()的区别
最近,在看代码时看到了一个方法, File.createTempFile() ,由此联想到File.createNewFile() 方法,一时间不知道两者到底有什么区别,感觉都是创建新文件嘛,后来查看api文档介绍,并经过自己动手试验,终于有了一个较为清楚地认识。 1. File 的 createNewFile() 方法: createNewFile();返回值为 boolean; 方法介 绍:当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。 使用: File file = new File("D:\\test\\1.txt"); boolean res = file.createNewFile(); if(!res)System.out.println("创建失败!");
如果D:/test 目录下没有 1.txt文件,则创建该文件;如果没有test目录,直接抛出异常,如果1.txt已经存在,那么文件创建失败。 可以得知,createNewFile() 方法,根据抽象路径创建一个新的空文件,当抽象路径制定的文件存在时,创建失败。
2. File 的 createTempFile() 方法
该方法有两种调用方式: createTempFile(String prefix, String suffix); 在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。 createTempFile(String prefix, String suffix, File directory); 在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。
File file2 = new File("D:\\temp");// D;/temp 为一个目录 File tempFile1= file2.createTempFile("msg", ".tmp",file2); File tempFile2 = file2.createTempFile("msg", ".tmp"); System.out.println(tempFile2.getAbsolutePath());
可以这么认为,createTempFile() 方法,在指定的目录下创建一个temp文件,directory 类型为File ,如果路径不存在,则创建失败。createTempFile(String prefix, String suffix);方法默认的保存路径为:C:\Documents and Settings\Administrator\Local Settings\Temp 。
2. java中File的delete和deleteOnExit区别
Java的File类中有两个delete方法:delete和deleteOnExit
delete无需解释,为直接删除,deleteOnExit文档解释为:在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。也就是说,程序运行deleteOnExit成功后,File并没有直接删除,而是在虚拟机正常运行结束后才会删除。
file创建文件的另一个方法:createTempFile(在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称)
这两个方法其实是对应的,使用场景是这样的:
程序有个需求需要创建临时文件,这个临时文件可能作为存储使用,但是程序运行结束后,这个文件应该就被删除了。在哪里做删除操作呢,需要监控程序关闭吗,如果有很多地方可以中止程序,这个删除操作需要都放置一份吗?其实只要这么写,程序结束后文件就会被自动删除了:
File file=File.createTempFile("tmp",null);
//这里对文件进行操作
file.deleteOnExit();
Java 中File类的createNewFile()与createTempFile(), delete和deleteOnExit区别的更多相关文章
- java中File类的常用方法总结
java中File类的常用方法 创建: createNewFile()在指定的路径创建一个空文件,成功返回true,如果已经存在就不创建,然后返回false. mkdir() 在指定的位置创建一个此抽 ...
- Java中File类的基本用法
File类的基本用法 java.io.File类:代表文件和目录.在开发中,读取文件.生成文件.删除文件.修改文件的属性时经常会用到此类. File类的常用构造方法:public File(Strin ...
- Java中File类的方法详解
File类也是Java中一个比较重要的类,通过他我们可以实现对文件的一系列操作,其内置了很多方法,下面我将按方法的功能分块,逐一讲解: 快速导航 构造方法 常用方法 创建目录 判断 `is...` t ...
- java中File类的使用
public class FileLei { public static void main(String[] args) throws IOException { //..表示上 ...
- java中File类的常用所有方法及其应用
创建:createNewFile()在指定位置创建一个空文件,成功就返回true,如果已存在就不创建,然后返回false.mkdir() 在指定位置创建一个单级文件夹.mkdirs() 在指定位置 ...
- java中File类的相关学习
File类 1.关于系统路径分割符. 在Windows中,使用反斜杠“\”作为路径分割符,比如“c:\test”,但是java中反斜杠表示转义,所以需要用“C:\\test”在程序中来表示路径.还可以 ...
- java中File类中list()和listFiles()方法区别
list()和listFiles()方法区别: 1.返回值类型不同:前者为String数组,后者为File对象数组 2.数组中元素内容不同:前者为string类型的[文件名](包含后缀名),后者为Fi ...
- Java中File类总结
/** * @Title:JavaFile.java * @Package:com.yhd.chart.model * @Description:File类测试 * @author:Youhaidon ...
- java中File类详解
构造函数 代码如下: public class FileDemo { public static void main(String[] args){ //构造函数File(St ...
随机推荐
- CRM项目再分析建表
今天老师带着我们分析了一点项目的业务,我们就觉得有些地方呢 有一些不妥额地方,然后呢 我们就在原来表的基础上做了一些修改! 我们也把我们组的项目业务的工作分配了一下! 但是我们遇到了一个组员不和我们 ...
- MAMP 安装phpredis 扩展
phpredis扩展包地址: https://github.com/nicolasff/phpredis 1.下载php源码 (http://php.net/releases/ 选择php5.5.1 ...
- rails中accepts_nested_attributes_for应用
Model: class Blog < ActiveRecord::Base has_many :strip_rules accepts_nested_attributes_for :strip ...
- VMware12 克隆虚拟机并且重新分配ip、mac
记录如何快速拷贝一台虚拟机,并且重新分配IP.mac等方便自己做实验: 环境:VMWare12 .Redhat6.8 Step1.克隆虚拟机 虚拟机处于未打开状态,右击管理—>克隆 弹出克隆界 ...
- 用SVN进行团队开发协作生命周期详解
目录 前言 面向人群 背景 解决方案 团队开发生命周期 创建新项目 创建分支 切换分支 合并代码 正式版本发布 bug修复 结束语 前言 查找了SVN的相关知识无论是园子里还是百度都只有一些理论,而有 ...
- OpenDigg iOS开源项目月报201704
由OpenDigg 出品的iOS开源项目月报第一期来啦.我们的iOS开源月报集合了OpenDigg一个月来新收录的优质的iOS开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等. Transi ...
- 用Collectors对List去重
在学习本篇之前,最好对java8新特性有一定的了解.可以参考:Java8新特性--流(Stream) 场景:有一个实体的List集合,需要根据实体中的某个字段对List去重 要想去重,可以考虑使用Tr ...
- echart 数据视图 样式重写
来源http://blog.csdn.net/u010705091/article/details/75212724 echarts折线图的数据视图样式重写 在echarts.js中,点击折线图的数据 ...
- leaks工具查找内存泄露
作为一名iOS开发攻城狮,在苹果没有出ARC(自动内存管理机制)时,我们几乎有一半的开发时间都耗费在这么管理内存上.后来苹果很人性的出了ARC,虽然在很大程度上,帮助我们开发者节省了精力和时间.但是我 ...
- Java多线程--线程及相关的Java API
Java多线程--线程及相关的Java API 线程与进程 进程是线程的容器,程序是指令.数据的组织形式,进程是程序的实体. 一个进程中可以容纳若干个线程,线程是轻量级的进程,是程序执行的最小单位.我 ...