Java如何用時間戳重命名上傳的文件
Java用時間戳重命名上傳的文件
場景
上傳文件后防止文件重名,需要獲取當前時間并作為
時間戳給上傳的文件重命名。
實現(xiàn)
if (file != null) {
//獲取上傳文件名
fileName = file1.getOriginalFilename();
//獲取后綴名
String sname = fileName.substring(fileName.lastIndexOf("."));
//時間格式化格式
SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyyMMddHHmmssSSS");
//獲取當前時間并作為時間戳
String timeStamp=simpleDateFormat.format(new Date());
//拼接新的文件名
String newName ="收貨單"+timeStamp+sname;
//指定上傳文件的路徑
String path = "F:\\" + newName;
//上傳保存
file.transferTo(new File(path));
//保存當前文件路徑
request.getSession().setAttribute("currFilePath", path);
}Java日志時間戳替換成時間
日志中的時間戳替換成時間,不經(jīng)常用,但是用到的時候又找不到,想簡單解用notepad++的正則替換好像又行不通。
上例子:
![]()
想必大家看到這樣的日志要奔潰的,什么鬼,只有一個時間戳,這怎么看。。。。
有的時候物聯(lián)網(wǎng)相關(guān)行業(yè)會遇到,因為設備為了節(jié)約發(fā)送數(shù)據(jù)的成本可能只會攜帶很少量的信息,因此會出現(xiàn)一系列的麻煩,好了言歸正傳,上代碼了。
上代碼:
//定義正則表達式(待匹配的時間)
String reg = "[0-9]{10}";//正則表達式這里是根據(jù)時間戳匹配的,看你的日志自己發(fā)揮
//編譯正則表達式
Pattern patten = Pattern.compile(reg);
//讀取目標日志文件
String temp = FileOperateUtils.readToString("D:\\sub.log");
//按行分割
String[] lines = temp.split("\n");
StringBuilder result = new StringBuilder();
for (int i = 0; i < lines.length; i++) {
// 指定要匹配的字符串
Matcher matcher = patten.matcher(lines[i]);
//此處find()每次被調(diào)用后,會偏移到下一個匹配
while (matcher.find()) {
String target = matcher.group();
lines[i] = lines[i].replaceFirst(target, DateUtil.getTime(new Date(Long.parseLong(target) * 1000)));
System.out.println(target);
}
result.append(lines[i]).append("\n");
}
//輸出
FileOperateUtils.createAndWriteAppendFile(result.toString(), "D:\\subResult.log");
System.out.println("OK! D:\\subResult.log");最終拿到的結(jié)果就是你想要的。
有時候遇到問題,想用工具直接搞,又搞不定,寫一個代碼又麻煩,沒辦法,只能自己多造一些自己用的工具吧。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
java中構(gòu)造器內(nèi)部調(diào)用構(gòu)造器實例詳解
在本篇文章里小編給大家分享的是關(guān)于java中構(gòu)造器內(nèi)部調(diào)用構(gòu)造器實例內(nèi)容,需要的朋友們可以學習下。2020-05-05
Java 并發(fā)編程創(chuàng)建線程的四種方式示例詳解
本文對比Java創(chuàng)建線程的四種方式:繼承Thread類(單繼承限制)、實現(xiàn)Runnable接口(靈活推薦)、實現(xiàn)Callable接口(支持返回值)、使用線程池(最佳實踐,資源管理高效),推薦優(yōu)先使用線程池提升系統(tǒng)穩(wěn)定性與資源利用率,感興趣的朋友一起看看吧2025-09-09
SpringBoot?pdf打印及預覽(openhtmltopdf+freemarker)
這篇文章主要介紹了SpringBoot?pdf打印及預覽(openhtmltopdf+freemarker)2023-05-05
詳解SpringBoot中添加@ResponseBody注解會發(fā)生什么
這篇文章主要介紹了詳解SpringBoot中添加@ResponseBody注解會發(fā)生什么,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11
Java 進階使用 Lambda 表達式實現(xiàn)超強的排序功能
今天要說的是第二種排序方式,在內(nèi)存中實現(xiàn)數(shù)據(jù)排序。這篇文章主要介紹了Java 進階使用 Lambda 表達式實現(xiàn)超強的排序功能,需要的朋友可以參考下2021-11-11

