java创建文件和目录

Wesley13
• 阅读 509

[java] view plaincopy

  1. 创建文件和目录的关键技术点如下:

[java] view plaincopy

  1. 1、File类的createNewFile根据抽象路径创建一个新的空文件,当抽象路径制定的文件存在时,创建失败

  2. 2、File类的mkdir方法根据抽象路径创建目录

  3. 3、File类的mkdirs方法根据抽象路径创建目录,包括创建必需但不存在的父目录

  4. 4、File类的createTempFile方法创建临时文件,可以制定临时文件的文件名前缀、后缀及文件所在的目录,如果不指定目录,则存放在系统的临时文件夹下。

  5. 5、除mkdirs方法外,以上方法在创建文件和目录时,必须保证目标文件不存在,而且父目录存在,否则会创建失败

  6. 实例演示

[java] view plaincopy

  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

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
Java爬虫之JSoup使用教程
title:Java爬虫之JSoup使用教程date:201812248:00:000800update:201812248:00:000800author:mecover:https://imgblog.csdnimg.cn/20181224144920712(https://www.oschin
Wesley13 Wesley13
3年前
P2P技术揭秘.P2P网络技术原理与典型系统开发
Modular.Java(2009.06)\.Craig.Walls.文字版.pdf:http://www.t00y.com/file/59501950(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.t00y.com%2Ffile%2F59501950)\More.E
Wesley13 Wesley13
3年前
MySQL 的慢 SQL 怎么优化?
!(https://oscimg.oschina.net/oscnet/7b00ec583b5e42cc80e8c56c6556c082.jpg)Java技术栈www.javastack.cn关注阅读更多优质文章(https://www.oschina.net/action/GoToLink?urlhttp
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这