背景
最近接手了同事的代码,发现他是这样处理excel文件的:
1 | 复制代码1. 将文件保存到一个事先定义好的目录;如果目录不存在则新建 |
这样虽然可以达到效果,但实在是繁琐至极,非常不优雅。其实jdk中就提供了处理临时文件(Temporary File)的方法,现在让我们来看一看。
创建临时文件
在java中创建临时文件有许多场景,但是大多数是在单元测试或者是对上传的文件进行内容处理。当测试用例或者文件处理完成后,你并不关心文件是否还存在。况且持续累积的无效文件无疑会浪费许多磁盘空间。
通过使用java.io.File.createTempFile()创建临时文件
1 | 复制代码public class TemporaryFileExample |
windows系统中的输出: C:\Users\admin\AppData\Local\Temp\myTempFile7295261447112135643.txt
通过使用NIO创建临时文件
1 | 复制代码public class TemporaryFileExample |
windows系统中的输出: C:\Users\admin\AppData\Local\Temp\myTempFile3492283537103788196.txt
写入临时文件
比如在文件上传的时候,我们就可以将字节流写入临时文件当中。
使用java.io.BufferedWriter写入临时文件
1 | 复制代码import java.io.BufferedWriter; |
使用NIO写入临时文件
如果你要使用java NIO库,你就可以使用Files.write()方法
1 | 复制代码public class TemporaryFileExample |
删除临时文件
删除临时文件是非常重要的一步,因为你不想让你的磁盘空间爆炸。
为了当在应用exit时(jvm终止)删除文件,你可以使用:
1 | 复制代码File temp = File.createTempFile("myTempFile", ".txt"); |
或者如果你想要立马删除文件,你可以直接使用delete()
方法
1 | 复制代码File temp = File.createTempFile("myTempFile", ".txt"); |
使用IO删除临时文件
1 | 复制代码import java.io.File; |
使用NIO删除临时文件
1 | 复制代码public class TemporaryFileExample |
本文转载自: 掘金