java创建文件和目录

2018-06-20 16:48 更新

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

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

实例演示

  1. package book.io;
  2. import java.io.File;
  3. import java.io.IOException;
  4. public class CreateFileUtil {

public static boolean createFile(String destFileName) {
File file = new File(destFileName);
if(file.exists()) {
System.out.println("创建单个文件" + destFileName + "失败,目标文件已存在!");
return false;
}
if (destFileName.endsWith(File.separator)) {
System.out.println("创建单个文件" + destFileName + "失败,目标文件不能为目录!");
return false;
}
//判断目标文件所在的目录是否存在
if(!file.getParentFile().exists()) {
//如果目标文件所在的目录不存在,则创建父目录
System.out.println("目标文件所在目录不存在,准备创建它!");
if(!file.getParentFile().mkdirs()) {
System.out.println("创建目标文件所在目录失败!");
return false;
}
}
//创建目标文件
try {
if (file.createNewFile()) {
System.out.println("创建单个文件" + destFileName + "成功!");
return true;
} else {
System.out.println("创建单个文件" + destFileName + "失败!");
return false;
}
} catch (IOException e) {
e.printStackTrace();
System.out.println("创建单个文件" + destFileName + "失败!" + e.getMessage());
return false;
}
}

  1. public static boolean createDir(String destDirName) {
  2. File dir = new File(destDirName);
  3. if (dir.exists()) {
  4. System.out.println("创建目录" + destDirName + "失败,目标目录已经存在");
  5. return false;
  6. }
  7. if (!destDirName.endsWith(File.separator)) {
  8. destDirName = destDirName + File.separator;
  9. }
  10. //创建目录
  11. if (dir.mkdirs()) {
  12. System.out.println("创建目录" + destDirName + "成功!");
  13. return true;
  14. } else {
  15. System.out.println("创建目录" + destDirName + "失败!");
  16. return false;
  17. }
  18. }
  19. public static String createTempFile(String prefix, String suffix, String dirName) {
  20. File tempFile = null;
  21. if (dirName == null) {
  22. try{
  23. //在默认文件夹下创建临时文件
  24. tempFile = File.createTempFile(prefix, suffix);
  25. //返回临时文件的路径
  26. return tempFile.getCanonicalPath();
  27. } catch (IOException e) {
  28. e.printStackTrace();
  29. System.out.println("创建临时文件失败!" + e.getMessage());
  30. return null;
  31. }
  32. } else {
  33. File dir = new File(dirName);
  34. //如果临时文件所在目录不存在,首先创建
  35. if (!dir.exists()) {
  36. if (!CreateFileUtil.createDir(dirName)) {
  37. System.out.println("创建临时文件失败,不能创建临时文件所在的目录!");
  38. return null;
  39. }
  40. }
  41. try {
  42. //在指定目录下创建临时文件
  43. tempFile = File.createTempFile(prefix, suffix, dir);
  44. return tempFile.getCanonicalPath();
  45. } catch (IOException e) {
  46. e.printStackTrace();
  47. System.out.println("创建临时文件失败!" + e.getMessage());
  48. return null;
  49. }
  50. }
  51. }
  52. public static void main(String[] args) {
  53. //创建目录
  54. String dirName = "D:/work/temp/temp0/temp1";
  55. CreateFileUtil.createDir(dirName);
  56. //创建文件
  57. String fileName = dirName + "/temp2/tempFile.txt";
  58. CreateFileUtil.createFile(fileName);
  59. //创建临时文件
  60. String prefix = "temp";
  61. String suffix = ".txt";
  62. for (int i = 0; i < 10; i++) {
  63. System.out.println("创建了临时文件:"
  64. + CreateFileUtil.createTempFile(prefix, suffix, dirName));
  65. }
  66. //在默认目录下创建临时文件
  67. for (int i = 0; i < 10; i++) {
  68. System.out.println("在默认目录下创建了临时文件:"
  69. + CreateFileUtil.createTempFile(prefix, suffix, null));
  70. }
  71. }
  72. }

输出结果:

  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
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号