欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java保存文件

程序员文章站 2022-06-17 13:33:23
...
package com.singlee.util;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;

import org.apache.commons.io.FileUtils;

/**
 * 保存文件到服务器
 * 
 * @author mingzl
 * 
 */
public class SaveFile {

	/**
	 * 改名称的方法,(新名称=原名称+_+年月日时分秒时间+_+八位随机数)
	 * 
	 * @param oldname
	 *            原名称
	 * @return newName 新名称
	 */
	public String changName(String oldName) {

		// 第一步:得到系统时间
		SimpleDateFormat ff = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss");
		Date d = new Date();
		String time = ff.format(d);
		// 第二步:得到一个随机数
		int rad = new Random().nextInt(900000000);
		// 第三步:得到原文件的后缀名如:.jpg .doc .txt
		String lastName = oldName.substring(oldName.lastIndexOf("."));
		// 第四步:拼装新名(保证唯一性)
		String newName = oldName + "_" + time + "_" + rad + lastName;
		System.out.println("文件新名称:" + newName);
		return newName;
	}

	/**
	 * 保存文件
	 * 
	 * @param file
	 *            保存的文件
	 * @param filename
	 *            保存文件的名称(参考)
	 * @param savepath
	 *            文件保存的路径
	 * @param saveasnewname
	 *            是否以新名字保存
	 * @return boolean (true:保存成功;false:保存失败)
	 */
	public boolean save(File file, String filename, String savepath,
			boolean saveasnewname) {
		filename = saveasnewname ? changName(filename) : filename;
		File f = new File(savepath, filename);
		try {
			FileUtils.copyFile(file, f);
		} catch (IOException e) {
			e.printStackTrace();
			return false;
		}
		return true;
	}
}