`
lizhenbin2010
  • 浏览: 99687 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Java创建文件和文件路径

    博客分类:
  • J2se
 
阅读更多

最近在开发过程中,经常用到创建文件路径和文件,以前经常写死在代码中,发现很多的重复代码,现在有时间,整理一下,和参考了一下网上好的文章,写了一个创建文件和创建文件路径的工具类,供以后参考使用。

1:创建文件部分,该部分,创建的某个文件夹里面,可以指定在子文件夹,下次执行到这里,文件不可以覆盖,保持原有文件的信息不变,源码如下所示:

/**
	 * 创建文件,存在不可覆盖
	 * @param destFileName 文件路径和文件名称(/com/filename.txt)
	 * @return true:创建成功 false:创建失败
	 */
	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 + "失败!");
			return false;
		}
	}

 2:创建文件夹,这部分主要是为了保持上面所述的文件的位置,配合使用,创建之后下次执行这代码,文件夹不可覆盖

 

/**
	 * 创建文件夹(目录),存在不可覆盖
	 * @param destDirName 创建路径(D:/com/filePath)
	 * @return
	 */
	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;
		}
	}

 

上述所述配合使用就可以完成一个文件存放在具体位置。

到这里,大致了解了创建文件和文件夹的基本方法,下面就是我整理的一个工具类。

package com.lzb.reader;

import java.io.File;
import java.io.IOException;

/**
 * Java创建文件在指定的目录
 * @author lizhenbin
 *
 */
public class CreateFileUtil {
	
	/**
	 * 创建文件,存在不可覆盖
	 * @param destFileName 文件路径和文件名称(/com/filename.txt)
	 * @return true:创建成功 false:创建失败
	 */
	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 + "失败!");
			return false;
		}
	}
	
	/**
	 * 创建文件夹(目录),存在不可覆盖
	 * @param destDirName 创建路径(D:/com/filePath)
	 * @return
	 */
	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;
		}
	}
	
	/**
	 * 创建临时文件
	 * @param prefix 临时文件的拼凑名字前部分
	 * @param suffix 文件后缀名
	 * @param dirName 所在的目录
	 * @return
	 */
	public static String createTempFile(String prefix, String suffix, String dirName) {
		
		File tempFile = null;
		try{
			if(dirName == null) {
				// 在默认文件夹下创建临时文件
				tempFile = File.createTempFile(prefix, suffix);
				return tempFile.getCanonicalPath();
			}else{
				File dir = new File(dirName);
				//如果临时文件所在目录不存在,首先创建
				if(!dir.exists()) {
					if(!CreateFileUtil.createDir(dirName)){
						System.out.println("创建临时文件失败,不能创建临时文件所在目录!");
						return null;
					}
				}
				tempFile = File.createTempFile(prefix, suffix, dir);
				return tempFile.getCanonicalPath();
			}
		}catch(IOException e) {
			e.printStackTrace();
			System.out.println("创建临时文件失败" + e.getMessage());
			return null;
		}
	}
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics