Java如何用時間戳重命名上傳的文件
Java用時間戳重命名上傳的文件
場景
上傳文件后防止文件重名,需要獲取當(dāng)前時間并作為
時間戳給上傳的文件重命名。
實現(xiàn)
if (file != null) { //獲取上傳文件名 fileName = file1.getOriginalFilename(); //獲取后綴名 String sname = fileName.substring(fileName.lastIndexOf(".")); //時間格式化格式 SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyyMMddHHmmssSSS"); //獲取當(dāng)前時間并作為時間戳 String timeStamp=simpleDateFormat.format(new Date()); //拼接新的文件名 String newName ="收貨單"+timeStamp+sname; //指定上傳文件的路徑 String path = "F:\\" + newName; //上傳保存 file.transferTo(new File(path)); //保存當(dāng)前文件路徑 request.getSession().setAttribute("currFilePath", path); }
Java日志時間戳替換成時間
日志中的時間戳替換成時間,不經(jīng)常用,但是用到的時候又找不到,想簡單解用notepad++的正則替換好像又行不通。
上例子:
想必大家看到這樣的日志要奔潰的,什么鬼,只有一個時間戳,這怎么看。。。。
有的時候物聯(lián)網(wǎng)相關(guān)行業(yè)會遇到,因為設(shè)備為了節(jié)約發(fā)送數(shù)據(jù)的成本可能只會攜帶很少量的信息,因此會出現(xiàn)一系列的麻煩,好了言歸正傳,上代碼了。
上代碼:
//定義正則表達(dá)式(待匹配的時間) String reg = "[0-9]{10}";//正則表達(dá)式這里是根據(jù)時間戳匹配的,看你的日志自己發(fā)揮 //編譯正則表達(dá)式 Pattern patten = Pattern.compile(reg); //讀取目標(biāo)日志文件 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)文章
SpringBoot整合數(shù)據(jù)庫訪問層的實戰(zhàn)
本文主要介紹了SpringBoot整合數(shù)據(jù)庫訪問層的實戰(zhàn),主要包含JdbcTemplate和mybatis框架的整合應(yīng)用,具有一定的參考價值,感興趣的可以了解一下2022-03-03