创建临时文件

  • IO 方法
  • NIO 方法

IO 方法

java.io.File.createTempFile(String prefix, String suffix, File directory) 在指定目录创建临时文件,调用 deleteOnExit() 可以删除由该方法创建的文件。

public static File createTempFile(String prefix, String suffix, File directory)

参数说明:

  • prefix 定义文件名,要求至少3个字符,如果太长会自动截断;
  • suffix 定义文件后缀,如果为 null,则以 .tmp 替代;
  • directory 是临时文件所在目录,如果指定的目录不存在,抛出 IOException

文件名由 prefix + “内部随机生成字符(至少5个)”+suffix 组成。

如果 directory 为 null,则使用默认目录,其位置由 java.io.tmpdir 系统属性确定。例如在 Windows 10 系统上:

System.out.println(System.getProperty("java.io.tmpdir"));
// C:\Users\<username>\AppData\Local\Temp\

这个方法一般和 deleteOnExit 配套使用,在使用完临时文件后删除之。

使用示例:

File f = File.createTempFile("tmp", ".txt", new File("D:\\data"));
System.out.println("File path: " + f.getAbsolutePath());
// File path: D:\data\tmp9662249449050851548.txt// deletes file when the virtual machine terminate
f.deleteOnExit();// creates temporary file, if suffix is null, "tmp" is used.
f = File.createTempFile("tmp", null, new File("D:/"));
System.out.println("File path: " + f.getAbsolutePath());
// File path: D:\tmp16530246932214752759.tmp// deletes file when the virtual machine terminate
f.deleteOnExit();// if the directory is null, default temp folder is used (AppData\Local\Temp for Windows)
f = File.createTempFile("tmp", null, null);
System.out.println(f.getAbsolutePath());
// C:\Users\happy\AppData\Local\Temp\tmp1426089657789007888.tmp
f.deleteOnExit();

NIO 方法

java.nio.file.Files 类同样提供了创建临时文件的方法:

public static Path createTempFile(Path dir, String prefix, String suffix, FileAttribute<?>... attrs)

方法签名和 File.createTempFile() 类似,使用 prefixsuffix 生成临时文件名的规则基本也一致。

在使用创建的临时文件时,使用 StandardOpenOption.DELETE_ON_CLOSE 选项打开,在使用后调用合适的 close 方法可以保证该文本被删除。

例1:创建指定后缀的临时文件

Path tempFile = Files.createTempFile("happy", ".lucky");
System.out.println(tempFile);
// C:\Users\happy\AppData\Local\Temp\happy5418717743945248114.lucky

在默认临时文件夹创建临时文件。

例2:不指定前缀

Path tempFile2 = Files.createTempFile(null, ".lucky");
System.out.println(tempFile2);
// C:\Users\happy\AppData\Local\Temp\5335753237959736973.lucky

不指定前缀,对应的临时文件名全部为随机生成字符。

例3:不指定后缀

Path tempFile3 = Files.createTempFile("happy", null);
System.out.println(tempFile3);
// C:\Users\happy\AppData\Local\Temp\happy851462428616511214.tmp

不指定后缀,使用默认后缀 .tmp

例4:指定空后缀

Path tempFile4 = Files.createTempFile("happy", "");
System.out.println(tempFile4);
// C:\Users\happy\AppData\Local\Temp\happy1219941913418435852

指定空后缀,则没有后缀。

Java - 创建临时文件相关推荐

  1. java创建临时文件_用Java创建一个临时文件

    java创建临时文件 The task is to create a temporary file in Java. 任务是用Java创建一个临时文件. Creating a temporary fi ...

  2. java创建临时文件夹_java创建临时文件

    [java]代码库/** * 创建临时文件 * * @param prefix * 临时文件名的前缀 * @param suffix * 临时文件名的后缀 * @param dirName * 临时文 ...

  3. java创建临时文件的路径问题

    创建临时文件使用 createTempFile()方法,有以下问题需要注意: 源码 public static File createTempFile(String fileName, String ...

  4. java创建临时文件夹_如何在Java中创建一个临时目录/文件夹?

    有没有在Java应用程序内部创建临时目录的标准可靠方法? Java的问题数据库中有一个条目,注释中包含一些代码,但是我想知道在一个常用的库(Apache Commons等)中是否找到标准解决方案? # ...

  5. Java 文件操作一(写文件、按行读文件、删除文件、复制文件、追加数据、创建临时文件、修改最后修改日期、获取文件大小)

    文件写入 import java.io.*;public class Main {public static void main(String[] args) {try {BufferedWriter ...

  6. 如何在Java中创建临时文件?

    在Java程序中,有时需要创建临时文件来暂存数据或者执行某些操作.Java提供了许多方式来创建临时文件.在本教程中,我们将介绍如何使用Java标准库来创建临时文件. 一.使用File.createTe ...

  7. java 创建临时临时文件

    import java.io.File; import java.io.IOException;/*** 创建新文件和目录*/ public class CreateFileUtil {/*** 创建 ...

  8. Java从string数组创建临时文件

    //从string数组创建临时文件 private static File createSampleFile(String[] strs) throws IOException {File file ...

  9. 妙用 Intellij IDEA 创建临时文件,Git 跟踪不到的那种

    多数人对于 Intellij IDEA 可能始于其「颜值」,终于其「才华」,外加各种插件 buff 的加成,coding 的节奏分分钟要暴走 抛开自己安装的插件,IDEA 其实也内秀的很,在 Inte ...

最新文章

  1. Windows Phone 7第一次亲密接触
  2. placeholder在不同浏览器下的表现及兼容方法
  3. OpenCASCADE绘制测试线束:拓扑命令之复杂拓扑
  4. 爱情麻辣烫:浓缩了中华美食精华与火锅的精髓
  5. linux看门狗设备,基于Linux构建无人值守系统(看门狗)
  6. 数学知识点大集合!有了它学数学真的很简单!
  7. Python图形用户界面、图形绘制
  8. Ubuntu 20.10 代号 Groovy Gorilla,第二个以猿类命名版本,将于 10 月 22 日发布
  9. LVS——DR模式下的健康检查
  10. python控制台动画,如何使用Python 3.x在控制台应用程序中创建ASCII动画?
  11. 【转】android新建项目时 出现appcompat_v7工程错误和红色感叹号
  12. 云计算机教室详细建设方案,计算机教室更新建设方案.doc
  13. linux机顶盒怎么破解wifi,折腾一下数字电视的机顶盒
  14. 如何用10分钟做出一个表情包视频
  15. 知道创宇爬虫题--代码持续更新中
  16. java怎么求平方怎么求指数?
  17. 【转载】使用Pandas创建数据透视表
  18. 乔治亚理工学院计算机专业,佐治亚理工学院计算机专业怎么样?
  19. Pytorch:图像语义分割-FCN, U-Net, SegNet, 预训练网络
  20. Python 的异常处理

热门文章

  1. 机器人锤石下路组合_下路骚套路—辅助二人组之:锤石+机器人
  2. 鲁大师 AIMARK 性能评测与 OpenVINO - 酷睿11代 i7 AI 性能
  3. Python:运用pydub模块转换音频格式、对音频进行剪辑
  4. 2019南京大学软件学院9月夏令营(预推免)小结
  5. 导数的四则运算法则_数学一轮复习14,导数的概念及运算,注意求导法则对求导的制约...
  6. javascript 往一个节点动态添加元素、内容并判断是否溢出,溢出则删除
  7. html5幻灯片 自动滑动,纯js和CSS3炫酷自动幻灯片特效
  8. DAPP基本的开发流程
  9. 我的世界服务器增加刷怪率,MC:想要做出高效率的刷怪塔,必须要掌握这个具体的刷怪周期...
  10. 法律与人工智能调研与展望