工作中经常用到时间戳加上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;
}
}

IP地址加时间戳加3位随机数的更多相关文章

  1. ip地址的组成(网络位+主机位)

    IP地址子网掩码都是32位的2进制,为了方便记忆转成10进制,通过子网掩码来区分网络位和主机位,子网掩码跟IP地址一一对应,子网掩码为1的是网络位,为0的是主机位.如:192.168.1.2 掩码25 ...

  2. IP地址 A\B\C类

    互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),缩写为IP地址(IP Address),在Internet上,一种给主机编址的方式.常见的IP地址,分为 ...

  3. Windows 之 IP地址

    IP地址是指互联网协议地址(Internet Protocol Address,又译为网际协议地址),是IP Address的缩写.IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络 ...

  4. IP地址的含义

    不管是学习网络还是上网,IP地址都是出现频率非常高的词.Windows系统中设置IP地址的界面如图1所示,图中出现了IP地址.子网掩码.默认网关和DNS服务器这几个需要设置的地方,只有正确设置,网络才 ...

  5. windows之IP地址(一)

    服务器: 顾名思义,是服务我们上网的机器.结构组成上和普通的PC结构相似,装了服务器版的系统后都可以作为服务器使用,但前者可靠性高.服务器是网络这个网上的中间节点,供每台终端进行访问.数据信息保存,有 ...

  6. 怎样快速对二进制和十进制进行互转化——IP地址规划与设计总结

    转至:https://blog.csdn.net/erlian1992/article/details/47342189 最近一直在看全国计算机三级网络技术这本书,看到第二章的时候,不免会遇到计算机中 ...

  7. 如何在 Linux 中找到你的 公网IP 地址

    每个网站都有一个独有的公开 IP 地址,可供任何人从任何地方访问. 互联网协议Internet Protocol(IP)不需要介绍 —— 我们每天都在使用它.即使你不直接使用它,当你在浏览器上输入 w ...

  8. 计算机网络学习笔记--网络层之IP地址与子网

    IPv4地址: 我们知道在网络层(TCP/IP体系结构的网际互联层),最重要的一个协议就是IP协议,现在正处于IPv4和IPv6的过渡时期,但目前来说,IPv4仍为主流,所以主要讲Ipv4. IP地址 ...

  9. 虚拟机下Centos7如何设置静态IP地址

    最近在学习linux环境部署~~~~ 首先,将网络适配设置成为桥接模式 查看本机IP地址,ipconfig,记住ipv4地址和默认网关地址,等会配置的时候要用 启动Centos,进入终端模式,设置IP ...

随机推荐

  1. Codeforces Round #505 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final) -B C(GCD,最长连续交替序列)

    B. Weakened Common Divisor time limit per test 1.5 seconds memory limit per test 256 megabytes input ...

  2. Tarjan缩点【p4819】[中山市选]杀人游戏

    Description 一位冷血的杀手潜入Na-wiat,并假装成平民.警察希望能在\(N\)个人里面,查出谁是杀手.警察能够对每一个人进行查证,假如查证的对象是平民,他会告诉警察,他认识的人,谁是杀 ...

  3. 数学【p2613】 【模板】有理数取余(费马小定理)

    题目描述 给出一个有理数 c=a/b ,求 c mod 19260817的值. 说明 对于所有数据, 0≤a,b≤10^10001 分析: 一看题 这么短 哇简单!况且19260817还是个素数!(美 ...

  4. HDU 1496 Equations(哈希表)

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=1496 [题目大意] 给出一个方程ax1^2+bx2^2+cx3^2+dx4^2=0,求-100到1 ...

  5. C语言基础之while的使用

    一. 格式: 1: while (条件) 2:   3: { 4:   5: 循环体 6:   7: } 8:   二.运行原理 1.如果一开始条件就不成立,永远不会执行循环体 2.如果条件成立,就会 ...

  6. 基于Android的串口聊天室 (基于tiny4412) 一

    一.平台介绍 硬件平台: tiny4412ADK + S700 4GB Flash Android版本:Android-5.0.2 Linux版本: Linux-3.0.86 Bootloader:S ...

  7. vuejs -- 如何使一个自定义函数在加载时自动执行

  8. JAVA之HashMap集合

    /** * HashMap集合讲解 * HashMap集合不允许集合元素的Key重复 */package com.test; import java.util.*; public class test ...

  9. ES6里关于类的拓展(二):继承与派生类

    继承与派生类 在ES6之前,实现继承与自定义类型是一个不小的工作.严格意义上的继承需要多个步骤实现 function Rectangle(length, width) { this.length = ...

  10. IntelliJ IDEA和pycharm注册码

    BIG3CLIK6F-eyJsaWNlbnNlSWQiOiJCSUczQ0xJSzZGIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiI ...