在上传文件等操作中,我们为了不让文件名冲突,都会进行重命名操作,这里就介绍一个实现IP+时间戳的命名:
直接上代码了,也没什么好说的,实现还是挺简单的,不过实用
package com.xidian.bbs.util; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Random; public class IpTimeStamp { private SimpleDateFormat sim=null;//用来获取时间 private String ip=null; public IpTimeStamp(){ } public IpTimeStamp(String ip){ this.ip=ip; } public String getIpTimeRand(){ StringBuffer sbf=new StringBuffer(); if(this.ip!=null){ String a[]=this.ip.split("\\."); //根据点来拆分ip地址,但点要转义 for(int i=0;i<a.length;i++){ sbf.append(this.addZero(a[i], 3)); //调用补零的方法,每块ip不足三位的自动补足到三位 } sbf.append(this.getTimeStamp()); //用this来调用外部的方法 Random random=new Random(); //要产生随机数 for(int i=0;i<3;i++){ //产生三位随机数 sbf.append(random.nextInt(10)); //每位随机数都不超过10 } } return sbf.toString(); } @SuppressWarnings("unused") private String getDate(){ //关于日期与时间的实现 this.sim=new SimpleDateFormat("yyyy-mm-dd hh:mm:ss.SSS"); return this.sim.format(new Date()); } private String getTimeStamp(){ //返回时间戳 this.sim=new SimpleDateFormat("yyyymmddhhmmssSSS"); return this.sim.format(new Date()); } 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(); } //做测试 public static void main(String [] ary){ IpTimeStamp IpTimeStamp=new IpTimeStamp("172.168.3.222");//调用有参数的构造方法 System.out.println(IpTimeStamp.getIpTimeRand()); } }