创建要注意的地方如下:

  • <pre name="code" class="java">
  • File类的createNewFile根据抽象路径创建一个新的空文件,当抽象路径制定的文件存在时,创建失败
  • File类的mkdir方法根据抽象路径创建目录
  • File类的mkdirs方法根据抽象路径创建目录,包括创建必需但不存在的父目录
  • File类的createTempFile方法创建临时文件,可以制定临时文件的文件名前缀、后缀及文件所在的目录,如果不指定目录,则存放在系统的临时文件夹下。
  • 除mkdirs方法外,以上方法在创建文件和目录时,必须保证目标文件不存在,而且父目录存在,否则会创建失败 。

实例演示:

  1. package book.io;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5.  
  6. public class CreateFileUtil {
  7.  
  8. public static boolean createFile(String destFileName) {
  9. File file = new File(destFileName);
  10. if(file.exists()) {
  11. System.out.println("创建单个文件" + destFileName + "失败,目标文件已存在!");
  12. return false;
  13. }
  14. if (destFileName.endsWith(File.separator)) {
  15. System.out.println("创建单个文件" + destFileName + "失败,目标文件不能为目录!");
  16. return false;
  17. }
  18. //判断目标文件所在的目录是否存在
  19. if(!file.getParentFile().exists()) {
  20. //如果目标文件所在的目录不存在,则创建父目录
  21. System.out.println("目标文件所在目录不存在,准备创建它!");
  22. if(!file.getParentFile().mkdirs()) {
  23. System.out.println("创建目标文件所在目录失败!");
  24. return false;
  25. }
  26. }
  27. //创建目标文件
  28. try {
  29. if (file.createNewFile()) {
  30. System.out.println("创建单个文件" + destFileName + "成功!");
  31. return true;
  32. } else {
  33. System.out.println("创建单个文件" + destFileName + "失败!");
  34. return false;
  35. }
  36. } catch (IOException e) {
  37. e.printStackTrace();
  38. System.out.println("创建单个文件" + destFileName + "失败!" + e.getMessage());
  39. return false;
  40. }
  41. }
  42.  
  43. public static boolean createDir(String destDirName) {
  44. File dir = new File(destDirName);
  45. if (dir.exists()) {
  46. System.out.println("创建目录" + destDirName + "失败,目标目录已经存在");
  47. return false;
  48. }
  49. if (!destDirName.endsWith(File.separator)) {
  50. destDirName = destDirName + File.separator;
  51. }
  52. //创建目录
  53. if (dir.mkdirs()) {
  54. System.out.println("创建目录" + destDirName + "成功!");
  55. return true;
  56. } else {
  57. System.out.println("创建目录" + destDirName + "失败!");
  58. return false;
  59. }
  60. }
  61.  
  62. public static String createTempFile(String prefix, String suffix, String dirName) {
  63. File tempFile = null;
  64. if (dirName == null) {
  65. try{
  66. //在默认文件夹下创建临时文件
  67. tempFile = File.createTempFile(prefix, suffix);
  68. //返回临时文件的路径
  69. return tempFile.getCanonicalPath();
  70. } catch (IOException e) {
  71. e.printStackTrace();
  72. System.out.println("创建临时文件失败!" + e.getMessage());
  73. return null;
  74. }
  75. } else {
  76. File dir = new File(dirName);
  77. //如果临时文件所在目录不存在,首先创建
  78. if (!dir.exists()) {
  79. if (!CreateFileUtil.createDir(dirName)) {
  80. System.out.println("创建临时文件失败,不能创建临时文件所在的目录!");
  81. return null;
  82. }
  83. }
  84. try {
  85. //在指定目录下创建临时文件
  86. tempFile = File.createTempFile(prefix, suffix, dir);
  87. return tempFile.getCanonicalPath();
  88. } catch (IOException e) {
  89. e.printStackTrace();
  90. System.out.println("创建临时文件失败!" + e.getMessage());
  91. return null;
  92. }
  93. }
  94. }
  95.  
  96. public static void main(String[] args) {
  97. //创建目录
  98. String dirName = "D:/work/temp/temp0/temp1";
  99. CreateFileUtil.createDir(dirName);
  100. //创建文件
  101. String fileName = dirName + "/temp2/tempFile.txt";
  102. CreateFileUtil.createFile(fileName);
  103. //创建临时文件
  104. String prefix = "temp";
  105. String suffix = ".txt";
  106. for (int i = 0; i < 10; i++) {
  107. System.out.println("创建了临时文件:"
  108. + CreateFileUtil.createTempFile(prefix, suffix, dirName));
  109. }
  110. //在默认目录下创建临时文件
  111. for (int i = 0; i < 10; i++) {
  112. System.out.println("在默认目录下创建了临时文件:"
  113. + CreateFileUtil.createTempFile(prefix, suffix, null));
  114. }
  115. }
  116.  
  117. }
  1. 输出结果:
  1. 创建目录D:/work/temp/temp0/temp1成功!
  2. 目标文件所在目录不存在,准备创建它!
  3. 创建单个文件D:/work/temp/temp0/temp1/temp2/tempFile.txt成功!
  4. 创建了临时文件:D:work emp emp0 emp1 emp5171.txt
  5. 创建了临时文件:D:work emp emp0 emp1 emp5172.txt
  6. 创建了临时文件:D:work emp emp0 emp1 emp5173.txt
  7. 创建了临时文件:D:work emp emp0 emp1 emp5174.txt
  8. 创建了临时文件:D:work emp emp0 emp1 emp5175.txt
  9. 创建了临时文件:D:work emp emp0 emp1 emp5176.txt
  10. 创建了临时文件:D:work emp emp0 emp1 emp5177.txt
  11. 创建了临时文件:D:work emp emp0 emp1 emp5178.txt
  12. 创建了临时文件:D:work emp emp0 emp1 emp5179.txt
  13. 创建了临时文件:D:work emp emp0 emp1 emp5180.txt
  14. 在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5181.txt
  15. 在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5182.txt
  16. 在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5183.txt
  17. 在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5184.txt
  18. 在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5185.txt
  19. 在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5186.txt
  20. 在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5187.txt
  21. 在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5188.txt
  22. 在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5189.txt
  23. 在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5190.txt
  1.  

createNewFile创建空文件夹与createTempFile创建临时文件夹的更多相关文章

  1. touch 创建空文件或改变文件的时间戳属性

    1.命令功能 touch 改变文件时间属性或创建空文件. 2.语法格式 touch  [option]  file touch 选项 文件名 3. 选项参数说明 参数 参数说明 -a 仅改变文件的访问 ...

  2. swift 字符转为类,代码创建控件

    在使用类之前要先获得 命名空间 通过json来获取 字符型的类名 然后创建类对象,这时候就要用到字符转类 // 从info字典中获取到 命名空间 转为字符型 let NS = NSBundle.mai ...

  3. 如何修改IDM下载器的临时文件夹位置

    所有的应用程序在下载时,都会有一些默认的选项.比如产生的临时文件存放在C盘目录下,或者定期自动更新等设置.那么当我们的计算机上安装了很多程序之后,C盘的空间就会渐渐地变小了,从而有了空间不足等等情况, ...

  4. 2019-5-16-WPF-光标初始化的时候-temp-文件夹满了无法创建

    title author date CreateTime categories WPF 光标初始化的时候 temp 文件夹满了无法创建 lindexi 2019-05-16 19:16:27 +080 ...

  5. 解决Git无法同步空文件夹的问题

    思路:在每个空文件夹下创建空文件,同步后再删除 package org.zln.module1.demo1; import org.apache.log4j.Logger; import java.i ...

  6. tomcat发布项目时,空文件夹未发布成功

    问题背景: 项目发布到服务器时,缺少文件夹,到时向此文件夹写数据时发生错误. 后来经查,缺少这个文件夹,项目部署发布时,并不会把空文件夹发布上去 解决: 1.在空文件中加入,一个文件.就可以发布成功 ...

  7. JAVA 创建文件和文件夹,删除文件和文件夹的实用工具

    package com.file; import java.io.File; import java.io.IOException; //创建新文件和目录 public class CCRDFile ...

  8. git提交空文件夹和删除远程文件

    git提交空文件夹 在文件夹中创建 .gitkeep 文件,文件内容如下 # Ignore everything in this directory * # Except this file !.gi ...

  9. Linux常用命令,查看树形结构、删除目录(文件夹)、创建文件、删除文件或目录、复制文件或目录(文件夹)、移动、查看文件内容、权限操作

    5.查看树结构(tree) 通常情况下系统未安装该命令,需要yum install -y tree安装 直接使⽤tree显示深度太多,⼀般会使⽤ -L选项⼿⼯设定⽬录深度 格式:tree -L n [ ...

随机推荐

  1. css首行缩进两个字符串

    text-indent:2em; 这个属性就可以缩进,但是2em不确定是什么意思:抽空总结一下

  2. Java-----Excel转HTML

    尽管是转别人的(忘了哪转过来的了),但此处标为原创不是为了提高訪问量,也不是为了其它.仅仅是纯粹的认为有实际用途.希望能给很多其它有此需求的人看到并能帮到他们就足够了 所需jar包:jxl.jar p ...

  3. linux 获取文件系统信息(磁盘信息)

    源代码例如以下: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <s ...

  4. JS 严格模式

    标志 "use strict"; //老版本浏览器会自动忽略 调用 //整个文件调用 (function(){ "use strict"; })(); //单个 ...

  5. CSS3六边形

    <!DOCTYPE html> <!-- saved from url=(0043)http://dbox.whosemind.net/demo/liufang.html --> ...

  6. Activity之onWindowFocusChanged

    public void onWindowFocusChanged (boolean hasFocus) 参数hasFocus: the window of this activity has focu ...

  7. 红豆带你从零学C#系列之——初识C#

    问题一:什么是C#? C#是微软公司在2000年新推出的一款运行在.NET Framework平台上面的编程语言,这个.NET Framework平台又怎么去理解呢?举个例子来说好了,一个土著族人只会 ...

  8. C++_基础_运算符重载2

    内容: (1)只能用成员形式重载的运算符 (2)new/delete操作符的重载 (3)封装和继承的初识 (4)继承的特性 (5)子类及其函数的特性 (6)多重继承和虚继承 1.只能用成员形式重载的运 ...

  9. BZOJ 2302: [HAOI2011]Problem c( dp )

    dp(i, j)表示从i~N中为j个人选定的方案数, 状态转移就考虑选多少人为i编号, 然后从i+1的方案数算过来就可以了. 时间复杂度O(TN^2) ------------------------ ...

  10. USACO Section 4.3 Street Race(图的连通性+枚举)

    虽说是IOI'95,但是也是挺水的..for 第一问,n最大为50,所以可以直接枚举起点和终点之外的所有点,然后dfs判断是否连通:for 第二问,易知答案一定是第一问的子集,所以从第一问中的答案中枚 ...