java创建文件和目录

版权声明:本文为博主原创文章,未经博主允许不得转载。
- 创建文件和目录的关键技术点如下:
- <pre name="code" class="java"> 1、File类的createNewFile根据抽象路径创建一个新的空文件,当抽象路径制定的文件存在时,创建失败
- 2、File类的mkdir方法根据抽象路径创建目录
- 3、File类的mkdirs方法根据抽象路径创建目录,包括创建必需但不存在的父目录
- 4、File类的createTempFile方法创建临时文件,可以制定临时文件的文件名前缀、后缀及文件所在的目录,如果不指定目录,则存放在系统的临时文件夹下。
- 5、除mkdirs方法外,以上方法在创建文件和目录时,必须保证目标文件不存在,而且父目录存在,否则会创建失败
- 文件及文件夹(目录)命名的时候,不允许/ \ : ? *等字符
- 实例演示
- package book.io;
- import java.io.File;
- import java.io.IOException;
- 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;
- }
- }
- public static boolean createDir(String destDirName) {
- File dir = new File(destDirName);
- if (dir.exists()) {
- System.out.println("创建目录" + destDirName + "失败,目标目录已经存在");
- return false;
- }
- if (!destDirName.endsWith(File.separator)) {
- destDirName = destDirName + File.separator;
- }
- //创建目录
- if (dir.mkdirs()) {
- System.out.println("创建目录" + destDirName + "成功!");
- return true;
- } else {
- System.out.println("创建目录" + destDirName + "失败!");
- return false;
- }
- }
- public static String createTempFile(String prefix, String suffix, String dirName) {
- File tempFile = null;
- if (dirName == null) {
- try{
- //在默认文件夹下创建临时文件
- tempFile = File.createTempFile(prefix, suffix);
- //返回临时文件的路径
- return tempFile.getCanonicalPath();
- } catch (IOException e) {
- e.printStackTrace();
- System.out.println("创建临时文件失败!" + e.getMessage());
- return null;
- }
- } else {
- File dir = new File(dirName);
- //如果临时文件所在目录不存在,首先创建
- if (!dir.exists()) {
- if (!CreateFileUtil.createDir(dirName)) {
- System.out.println("创建临时文件失败,不能创建临时文件所在的目录!");
- return null;
- }
- }
- try {
- //在指定目录下创建临时文件
- tempFile = File.createTempFile(prefix, suffix, dir);
- return tempFile.getCanonicalPath();
- } catch (IOException e) {
- e.printStackTrace();
- System.out.println("创建临时文件失败!" + e.getMessage());
- return null;
- }
- }
- }
- public static void main(String[] args) {
- //创建目录
- String dirName = "D:/work/temp/temp0/temp1";
- CreateFileUtil.createDir(dirName);
- //创建文件
- String fileName = dirName + "/temp2/tempFile.txt";
- CreateFileUtil.createFile(fileName);
- //创建临时文件
- String prefix = "temp";
- String suffix = ".txt";
- for (int i = 0; i < 10; i++) {
- System.out.println("创建了临时文件:"
- + CreateFileUtil.createTempFile(prefix, suffix, dirName));
- }
- //在默认目录下创建临时文件
- for (int i = 0; i < 10; i++) {
- System.out.println("在默认目录下创建了临时文件:"
- + CreateFileUtil.createTempFile(prefix, suffix, null));
- }
- }
- }
- 输出结果:
- 创建目录D:/work/temp/temp0/temp1成功!
- 目标文件所在目录不存在,准备创建它!
- 创建单个文件D:/work/temp/temp0/temp1/temp2/tempFile.txt成功!
- 创建了临时文件:D:work emp emp0 emp1 emp5171.txt
- 创建了临时文件:D:work emp emp0 emp1 emp5172.txt
- 创建了临时文件:D:work emp emp0 emp1 emp5173.txt
- 创建了临时文件:D:work emp emp0 emp1 emp5174.txt
- 创建了临时文件:D:work emp emp0 emp1 emp5175.txt
- 创建了临时文件:D:work emp emp0 emp1 emp5176.txt
- 创建了临时文件:D:work emp emp0 emp1 emp5177.txt
- 创建了临时文件:D:work emp emp0 emp1 emp5178.txt
- 创建了临时文件:D:work emp emp0 emp1 emp5179.txt
- 创建了临时文件:D:work emp emp0 emp1 emp5180.txt
- 在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5181.txt
- 在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5182.txt
- 在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5183.txt
- 在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5184.txt
- 在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5185.txt
- 在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5186.txt
- 在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5187.txt
- 在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5188.txt
- 在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5189.txt
- 在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5190.txt
java创建文件和目录的更多相关文章
- JavaIO流程--创建文件和目录的实例
*创建函数: *public boolean createNewFile():创建文件 本文假设存在.不创造(转让file.createNewFile()返回false) *public bool ...
- linux下创建文件与目录时默认被赋予了什么样的权限?
当我们创建一个新的文件或目录的时候,他的默认权限是什么? umask--指定当前使用者在创建文件或目录的时候默认的权限值 [root@iZ288fgkcpkZ default]# umask [roo ...
- LINUX创建文件和目录的默认权限
在linux中,一位用户在创建文件和目录时,对其具有的权限都是一样的,如需更改,需要chmod命令做相应的更改.为什么?其实是权限掩码起作用了. 权限掩码的作用就是规范初创文件和目录时候的权限设置,免 ...
- 用IO流中的File类来创建文件及目录
题目如下: 设计一个命令窗口程序,要求按照如下的格式显示 例如:===利用命令窗口完成文件的操作===(1)创建目录 (2)创建文件 (3)删除目录 (4)删除文件 ===现在正在做创建目录的操作== ...
- JAVA 创建文件和文件夹,删除文件和文件夹的实用工具
package com.file; import java.io.File; import java.io.IOException; //创建新文件和目录 public class CCRDFile ...
- JAVA 创建文件和文件夹,删除文件和文件夹的实用工具
package com.file; import java.io.File; import java.io.IOException; //创建新文件和目录 public class CCRDFile ...
- 总结java创建文件夹的4种方法及其优缺点-JAVA IO基础总结第三篇
本文是Java IO总结系列篇的第3篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 ...
- Java 创建文件夹和文件,字符串写入文件,读取文件
两个函数如下: TextToFile(..)函数:将字符串写入给定文本文件: createDir(..)函数:创建一个文件夹,有判别是否存在的功能. public void TextToFile(fi ...
- 【每天一个Linux命令】19. 创建文件夹目录命令mkdir
命令用途 mkdir 命令用来创建指定的名称的目录 使用说明 1. 创建目录的用户在当前目录中具有写权限 2. 指定的目录名不能是当前目录中已有的目录. 命令实例 0. 帮助文件 bixiaopen ...
随机推荐
- Java中的关键字 transient
先解释下Java中的对象序列化 在讨论transient之前,有必要先搞清楚Java中序列化的含义: Java中对象的序列化指的是将对象转换成以字节序列的形式来表示,这些字节序列包含了对象的数据和信息 ...
- 总结Cnblogs支持的常用Markdown语法
一.什么是Markdown Markdown是一种可以使用普通文本编辑器编写的标记语言, Markdown的语法简洁明了.学习容易,而且功能比纯文本更强,因此有很多人用它写博客.世界上最流行的博客平台 ...
- 《Ansible权威指南》笔记(4)——Playbook
七.Playbook1.语法特性如下:(1)"---"首行顶格开始(2)#号注释(3)缩进统一,不同的缩进代表不同的级别,缩进要对齐,空格和tab不能混用(4)区别大小写,键值对k ...
- Windows Installer 服务启动错误 14007 的解决办法
问题: 在 本地计算机 无法启动 Windows Installer 服务. 错误代码 14007: 在活动的激活上下文中没有找到任何查找密钥. 这个问题似乎涉及到 Windows Installer ...
- centos mysql开启远程访问
登录MySQL: mysql -u root -p db; 如需修改密码,第一次: mysqladmin -u root password NEWPASSWORD 已设置过: mysqladmi ...
- 使用NuGet发布自己的类库包(Library Package)
STEP 1:注册并获取API Key 首先,你需要到NuGet上注册一个新的账号,然后在My Account页面,获取一个API Key,这个过程很简单,我就不作说明了. STEP 2:下载NuGe ...
- [LeetCode] Valid Word Square 验证单词平方
Given a sequence of words, check whether it forms a valid word square. A sequence of words forms a v ...
- [LeetCode] Binary Tree Postorder Traversal 二叉树的后序遍历
Given a binary tree, return the postorder traversal of its nodes' values. For example: Given binary ...
- [LeetCode] Minimum Depth of Binary Tree 二叉树的最小深度
Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shor ...
- [LeetCode] Count and Say 计数和读法
The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ...