首页 / JAVA / 在Java当中如何优雅地处理临时文件
在Java当中如何优雅地处理临时文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在Java当中如何优雅地处理临时文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3416字,纯文字阅读大概需要5分钟。
内容图文
创建临时文件
在java中创建临时文件有许多场景,但是大多数是在单元测试或者是对上传的文件进行内容处理。当测试用例或者文件处理完成后,你并不关心文件是否还存在。况且持续累积的无效文件无疑会浪费许多磁盘空间。
通过使用java.io.File.createTempFile()创建临时文件
public class TemporaryFileExample { public static void main(String[] args) { File temp; try { temp = File.createTempFile("myTempFile", ".txt"); System.out.println("Temp file created : " + temp.getAbsolutePath()); } catch (IOException e) { e.printStackTrace(); } } }
windows系统中的输出: C:\Users\admin\AppData\Local\Temp\myTempFile7295261447112135643.txt
通过使用NIO创建临时文件
public class TemporaryFileExample { public static void main(String[] args) { try { final Path path = Files.createTempFile("myTempFile", ".txt"); System.out.println("Temp file : " + path); } catch (IOException e) { e.printStackTrace(); } } }
windows系统中的输出: C:\Users\admin\AppData\Local\Temp\myTempFile3492283537103788196.txt
写入临时文件
比如在文件上传的时候,我们就可以将字节流写入临时文件当中。
使用java.io.BufferedWriter写入临时文件
import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; public class TemporaryFileExample { public static void main(String[] args) { File temp; try { temp = File.createTempFile("myTempFile", ".txt"); BufferedWriter bw = new BufferedWriter(new FileWriter(temp)); bw.write("This is the temporary data written to temp file"); bw.close(); System.out.println("Written to Temp file : " + temp.getAbsolutePath()); } catch (IOException e) { e.printStackTrace(); } } }
使用NIO写入临时文件
如果你要使用java NIO库,你就可以使用Files.write()方法
public class TemporaryFileExample { public static void main(String[] args) { try { final Path path = Files.createTempFile("myTempFile", ".txt"); System.out.println("Temp file : " + path); byte[] buf = "some data".getBytes(); Files.write(path, buf); } catch (IOException e) { e.printStackTrace(); } } }
删除临时文件
删除临时文件是非常重要的一步,因为你不想让你的磁盘空间爆炸。
为了当在应用exit时(jvm终止)删除文件,你可以使用:
File temp = File.createTempFile("myTempFile", ".txt"); temp.deleteOnExit();
或者如果你想要立马删除文件,你可以直接使用delete()
方法
File temp = File.createTempFile("myTempFile", ".txt"); temp.delete();
使用IO删除临时文件
import java.io.File; import java.io.IOException; public class TemporaryFileExample { public static void main(String[] args) { File temp; try { temp = File.createTempFile("myTempFile", ".txt"); System.out.println("Temp file created : " + temp.getAbsolutePath()); //temp.delete(); //立即删除 temp.deleteOnExit(); //运行结束时删除 System.out.println("Temp file exists : " + temp.exists()); } catch (IOException e) { e.printStackTrace(); } } }
使用NIO删除临时文件
public class TemporaryFileExample { public static void main(String[] args) { try { final Path path = Files.createTempFile("myTempFile", ".txt"); System.out.println("Temp file : " + path); // Files.delete(path); //立即删除文件 Files.deleteIfExists(path); } catch (IOException e) { e.printStackTrace(); } } }
但是在进行删除和创建文件的时候我使用的是hutool工具类中的fileUtil这个工具类
ls 列出目录和文件 touch 创建文件,如果父目录不存在也自动创建 mkdir 创建目录,会递归创建每层目录 del 删除文件或目录(递归删除,不判断是否为空),这个方法相当于Linux的delete命令 copy 拷贝文件或目录
需要注意的是,del方法会删除目录而不判断其是否为空,这一方面方便了使用,另一方面也可能造成一些预想不到的后果(比如拼写错路径而删除不应该删除的目录),所以请谨慎使用此方法。
内容总结
以上是互联网集市为您收集整理的在Java当中如何优雅地处理临时文件全部内容,希望文章能够帮你解决在Java当中如何优雅地处理临时文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。