zoukankan      html  css  js  c++  java
  • IP地址加时间戳加3位随机数

    工作中经常用到时间戳加上3位随机数获得唯一流水号,下面是代码~

    package com.pb.viewer.filename;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Random;
    
    /**
     * 在上传文件的操作中,如果多个用户上传的文件名称一样,则肯定会发生覆盖的
     * 情况,为了解决这个问题,可以采用为上传文件自动命名的方式
     * 自动命名采用的的文件格式如下:IP地址+时间戳+三位随机数
     * 
     * @author Voishion
     *
     */
    public class IPTimeStamp {
    	private SimpleDateFormat sdf = null;
    	private String ip = null;
    	private String filename = null;
    	
    	public IPTimeStamp() {
    	}
    	public IPTimeStamp(String ip, String filename) {
    		this.ip = ip;
    		this.filename = filename;
    	}
    	/**
    	 * 得到 IP地址+时间戳+三位随机数 的新文件名
    	 * @return
    	 */
    	public String getIPTimeRandName(){
    		StringBuffer buf = new StringBuffer();
    		if(this.ip != null){
    			String str[] = this.ip.split("\.");
    			for(int i = 0; i < str.length; i++){
    				buf.append(this.addZero(str[i], 3));
    			}
    		}//加上IP地址
    		buf.append(this.getTimeStamp());//加上日期
    		Random random = new Random();
    		for(int i = 0; i < 3; i++){
    			buf.append(random.nextInt(10));//取三个随机数追加到StringBuffer
    		}
    		buf.append("."+this.getFileExt());//加上扩展名
    		return buf.toString();
    		
    	}
    	
    	/**
    	 * 补0操作【如果不够指定位数,则在前面补0】
    	 * @param str
    	 * @param len
    	 * @return
    	 */
    	private String addZero(String str,int len){
    		StringBuffer s = new StringBuffer();
    		s.append(str);
    		while(s.length() < len){
    			s.insert(0, "0");
    		}
    		return s.toString();		
    	}
    	
    	/**
    	 * 取得时间戳
    	 * @return
    	 */
    	private String getTimeStamp(){
    		this.sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
    		return this.sdf.format(new Date());
    	}
    	
    	/**
    	 * 获取文件扩展名
    	 * @return
    	 */
    	private String getFileExt(){
            int i = this.filename.lastIndexOf(".");//返回最后一个点的位置	
    	    String extension = this.filename.substring(i+1);//取出扩展名
    		return extension;
    	}
    }
    
  • 相关阅读:
    前端基础知识1
    mysql作业
    mysql了解知识点
    mysql3
    数据库作业2
    循环结构经典题型
    计算1
    猜数字游戏
    css的显示
    定位和position定位
  • 原文地址:https://www.cnblogs.com/gaoguofeng/p/9700887.html
Copyright © 2011-2022 走看看