java创建文件和目录

时间:2023-01-25 05:41:21
2013-09-04 12:56 99933人阅读 评论(7) 收藏 举报
java创建文件和目录 分类:
JAVA基础(10) java创建文件和目录

版权声明:本文为博主原创文章,未经博主允许不得转载。

  1. 创建文件和目录的关键技术点如下:
  1. <pre name="code" class="java">    1、File类的createNewFile根据抽象路径创建一个新的空文件,当抽象路径制定的文件存在时,创建失败
  2. 2、File类的mkdir方法根据抽象路径创建目录
  3. 3、File类的mkdirs方法根据抽象路径创建目录,包括创建必需但不存在的父目录
  4. 4、File类的createTempFile方法创建临时文件,可以制定临时文件的文件名前缀、后缀及文件所在的目录,如果不指定目录,则存放在系统的临时文件夹下。
  5. 5、除mkdirs方法外,以上方法在创建文件和目录时,必须保证目标文件不存在,而且父目录存在,否则会创建失败
  6. 文件及文件夹(目录)命名的时候,不允许/  \ : ? *等字符
  7. 实例演示

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