Java中如何创建一个确保唯一的名字,文件名

 

 

 

------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------

 

 

本篇博客要讲的有,如何创建一个唯一的文件名,创建一个唯一的String字符串

为什么要创建唯一呢?再很多情况下,比如文件上传文件名要不一致否则就覆盖掉了,如何不一致,这就是本篇博客要讲的内容

 

注:直接采用随机数是愚蠢的做法,它在很大概率上会有相同的数字出现

方式一:时间戳

  推荐指数:

  原因:时间戳在高并发情况下有可能会出现相同

  解决方案:再拼随机数,注意拼接的时候别让俩个做加法运算      时间戳变量+""+随机数变量

 

        //时间戳第一种
        System.out.println(new Date().getTime());
        //时间戳第二种
        System.out.println(System.currentTimeMillis());

 

  随机数

 

        //生成六位随机数
        System.out.println((int)((Math.random()*9+1)*100000));

方式二:微秒数

  推荐指数:

  原因:它比时间戳还要细,控制的力度更强

  也可以加随机数或者自己拼接自己的规则

 

        //微秒数
        System.out.println(System.nanoTime());

方式三:UUID

  推荐指数:

  原因:他是java.util包下的一个可以产生不同的字符变量的一个类,它的功能很强大

 

        //采用UUID的方式                    import java.util.UUID;
        UUID randomUUID = UUID.randomUUID();
        System.out.println(randomUUID);

方式四:在前三种基础上自定义规则

  推荐指数:

  原因:在日常中上面三种都足以满足自己的小Demo,小项目使用,但是在成熟大项目中,或许有些不够看,所以,我讲第四种

  思路:文件名不是一个字符串嘛,做拼接的三面三种方式任意一种的时候可以自己加入自己的规则,比如上传者的id,比如你从那块上传的解释,甚至加入8位甚至更多的随机数等

  就是自定义规则,让概率变得更小!!!!!!!!!

 

转载于:https://www.cnblogs.com/DawnCHENXI/p/9308941.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用 Java 的 `java.io.FileInputStream` 和 `javax.servlet.http.Part` 类来实现文件上传功能。 以下是一个简单的示例: ``` import java.io.IOException; import java.io.InputStream; import javax.servlet.ServletException; import javax.servlet.annotation.MultipartConfig; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.Part; @WebServlet("/upload") @MultipartConfig public class FileUploadServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获取文件部分 Part filePart = request.getPart("file"); // 获取文件名 String fileName = getFileName(filePart); // 输入流读取文件 InputStream fileContent = filePart.getInputStream(); // 处理文件上传 // 设置响应状态为成功 response.setStatus(HttpServletResponse.SC_OK); } // 获取文件名 private String getFileName(Part part) { // 获取头信息,获取文件名 for (String cd : part.getHeader("Content-Disposition").split(";")) { if (cd.trim().startsWith("filename")) { String fileName = cd.substring(cd.indexOf('=') + 1).trim().replace("\"", ""); return fileName.substring(fileName.lastIndexOf('/') + 1).substring(fileName.lastIndexOf('\\') + 1); // MSIE fix. } } return null; } } ``` 需要注意的是,文件上传功能通常是放在服务器端的,所以这个示例代码使用的是 `HttpServlet` 类。在使用时,需要在表单添加一个 `type="file"` 的 `input` 元素,用户可以通过该元素选择要上传的文件。 ### 回答2: 要实现一个文件上传系统,可以使用Java编程语言,并结合一些常用的Java库和框架。 首先,需要一个前端页面让用户选择要上传的文件,并触发文件上传操作。可以使用HTML和CSS来设计页面,并使用JavaScript来处理用户交互和事件。 在后端,可以使用Java的Servlet技术来处理文件上传请求。可以使用Apache Commons FileUpload库来处理文件上传的细节,包括解析上传的请求、保存文件到指定路径等操作。可以通过在web.xml文件配置一个Servlet来处理文件上传请求,并指定文件保存的路径。 在处理文件上传请求时,需要验证文件类型和大小。可以使用Apache Tika库来检测文件类型,并设置允许上传的文件类型。另外,还可以通过设置文件大小的限制来确保用户上传的文件不会过大。 在文件上传完成后,可以返回给用户上传成功的提示信息,并提供下载链接。可以使用Java的IO流来读取上传的文件内容,并将其保存到指定路径。可以使用UUID类来生成唯一文件名,以避免文件名冲突。 此外,还可以实现一些额外的功能,比如文件的重命名、文件的删除和下载等。可以使用Java的文件操作类来实现这些功能。 总结起来,要实现一个文件上传系统,可以使用Java编程语言,并结合一些常用的Java库和框架,如Servlet、Apache Commons FileUpload、Apache Tika等。通过前端页面让用户选择文件并上传,后端通过Servlet处理文件上传请求,并保存文件到指定路径。通过验证文件类型和大小,确保上传的文件符合要求。最后,返回给用户上传成功的提示信息,并提供下载链接。 ### 回答3: 要实现一个Java文件上传系统,可以按照以下步骤进行: 1. 首先,需要创建一个Java web项目,可以使用Java Servlet和JSP技术。 2. 在项目创建一个文件上传的表单页面,可以使用HTML的<form>元素来实现。 3. 在表单设置文件上传的<input>元素,并指定enctype为"multipart/form-data",这样可以支持文件上传。 4. 创建一个Servlet类来处理文件上传请求。在Servlet,可以使用Apache的FileUpload组件来处理文件上传。可以使用以下代码示例: ```java @WebServlet("/upload") @MultipartConfig public class UploadServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获取上传的文件 Part filePart = request.getPart("file"); String fileName = filePart.getSubmittedFileName(); // 设置保存文件的路径 String savePath = "C:/uploads/"; File fileSaveDir = new File(savePath); if (!fileSaveDir.exists()) { fileSaveDir.mkdir(); } // 将文件保存到指定路径 filePart.write(savePath + File.separator + fileName); // 可以对上传的文件进行一些处理,如修改文件名、压缩文件等 response.sendRedirect("success.jsp"); // 重定向到上传成功页面 } } ``` 5. 在Servlet,通过request.getPart("file")获取上传的文件,然后将文件保存到指定路径。可以根据实际需求对上传的文件进行一些处理。 6. 创建一个用来显示上传成功的页面success.jsp,并在Servlet通过response.sendRedirect方法重定向到该页面。 7. 部署和运行该Java web项目,可以使用Tomcat等容器进行部署,并访问上传文件的表单页面,选择要上传的文件,点击提交按钮进行文件上传。 以上就是用Java实现一个文件上传系统的基本步骤。可以根据实际需求进行功能的扩展和优化,如增加文件类型验证、文件大小限制等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值