Java 的临时文件createTempFile

请直接看原文:

教你玩转 Java 的临时文件(创建与删除)_java生成临时文件不写磁盘 写内存-CSDN博客


在 Java 的 File 类中,有一个 createTempFile(String prefix,String suffix),调用它后,会在系统默认的临时文件目录中创建一个临时文件。

prefix 表示文件名。

suffix 表示文件的后缀,形如 ".tmp",注意这里需要包含 "." 哦!

java 复制代码
final File htmlFile = File.createTempFile("temp", ".html");//创建临时文件
logger.info("临时文件所在的本地路径:" + htmlFile.getCanonicalPath());
FileOutputStream fos = new FileOutputStream(htmlFile);
try {
   //这里处理业务逻辑
} finally {
    //关闭临时文件
    fos.flush();
    fos.close();

    htmlFile.deleteOnExit();//程序退出时删除临时文件
}

1.在 win7 系统中,默认的临时文件目录是 C:\Users\Administrator\AppData\Local\Temp.

2.在linux系统中,默认的临时文件目录是--这个我还没试,好像是(tmp 目录是一个临时文件存放目录)

3.用完临时文件后,及时清理是一个很好的编程习惯哦 O(∩_∩)O~

Java file.creatTempFile的一些疑问点和解答

这个临时文件创建到哪里?

经过查询资料和测试(mac系统查看隐藏文件 shift+cmmand+. 再次操作就会恢复隐藏)

mac默认文件夹是在 /var/folders/n8/q5dqg1k97972yjp344gcm4_r0000gn/T

window 默认文件夹在C:\Documents and Settings\Administrator\Local Settings\Temp

这个临时文件创建后,当程序运行结束后,这个临时文件会自动被删除掉吗?

不会被删除掉,需要你自己调方法或者设置删除

当这个路径已经存在了文件,会抹杀覆盖掉原来的文件,还是不进行新创建了?

这个方法,是prefix + 随机数 +suffix 构成的文件名,并不是prefix+suffix 这个api可是没有说明啊!

所以直接就不会存在路径冲突的问题(随机数冲突会从新生成新的),也就是会直接新建文件

这些疑问解决后,新的疑问,这些文件既然是临时的,怎么在程序运行完就自动删除这些文件呢?

creatTempFile创建成功后,会返回这个文件的对象,使用这个对象的 file.deleteOnExit();即可实现程序运行完自动删除这些文件(这个方法适合任何 file文件类)

对createTempFile(String prefix, String suffix, File directory)由creatTempFile(String prefix, String suffix) 从而产生以下的疑问,这个文件的名称也是prefix+ 随机数 + suffi组成的吗?

-结果表明是的。

相关推荐
凤凰院凶涛QAQ9 小时前
《Java版数据结构 & 集合类剖析》Map & Set & 反射:“从哈希碰撞到红黑树转换,反射帮你扒开 HashMap 的桶数组看个究竟”
java·数据结构·算法
H.莓飛9 小时前
【数据结构】排序_OJ题(一):计数、桶与排序后的处理
java·开发语言·数据结构
wangchunyu11410 小时前
JAVA AQS与Lock实现原理(含CAS)
java·开发语言·word
w_zero_one11 小时前
算法--模拟
java·数据结构·算法
Javatutouhouduan11 小时前
阿里1658页Java面试题总结(含答案)
java·高并发·java面试·java面试题·后端开发·java程序员·java八股文
秋天的怀念_David11 小时前
算法一千零一夜 · 第十三夜 幻方,武侠世界里的数学迷宫
java·程序人生·算法
专业程序开发源12 小时前
springboot欧缇蔓月子中心管理系统82697-计算机课程设计、毕业设计
java·spring boot·后端·python·spring·django·课程设计
秋天的怀念_David12 小时前
算法一千零一夜 · 第十四夜 幻方与奇妙的二进制
java·程序人生·算法
thefool11226612 小时前
网络编程^
java
Thinker QAQ12 小时前
并发编程(十一):Shared Memory 与 Message Passing——关系与组合使用
java·python·go·并发编程·shared memory·message passing