日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Web 静态文件版本升级代码

發布時間:2025/7/25 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Web 静态文件版本升级代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

  • import java.io.BufferedReader;
  • import java.io.File;
  • import java.io.FileInputStream;
  • import java.io.FileNotFoundException;
  • import java.io.FileOutputStream;
  • import java.io.IOException;
  • import java.io.InputStreamReader;
  • import java.io.OutputStreamWriter;
  • import java.io.PrintWriter;
  • import java.io.UnsupportedEncodingException;

public class SaasVersion {

//升級版本 private static final String v = "1.1";//文件夾的絕對路徑 private static final String[] pkgUrls = {"D:/workspace/yz.saas/WebContent/views/assets/" };//要進行版本升級的資源文件 public static String[] pats = {".js",".css",".html"};public static void main(String[] args) {if (pkgUrls.length == 0) {return;}for (int k = 0; k < pkgUrls.length; k++) {isFileAndDirectory(pkgUrls[k]);} }//判斷是file還是目錄; //如果是目錄,目錄下所有的文件,迭代處理; //如果是文件,則直接做版本替換處理,完事后刪除原文件,把備份文件修改成原文件 private static void isFileAndDirectory(String url) {File f = new File(url);if (f.isDirectory()) {File[] childUrls = f.listFiles();if (null == childUrls || childUrls.length == 0) {return;} else {for (File dirf : childUrls) {isFileAndDirectory(dirf.getAbsolutePath());}}} else {changeVersion(url);deleteAndRename(url);} }//修改版本的業務代碼 private static void changeVersion(String url) {BufferedReader br = null;PrintWriter pw = null;try {//處理原始文件File f = new File(url);if(!f.exists()) {System.err.println("===============>文件不存在:url=" + url);}if (f.isDirectory()) {System.err.println("===============>不能是文件夾:url=" + url);}//創建備份文件String tmpUrl = url + ".bak";File tmpFile = new File(tmpUrl);pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream(tmpFile), "UTF-8"));//將要處理的文件,按行處理到緩存里面br = new BufferedReader(new InputStreamReader(new FileInputStream(f),"UTF-8"));String inputStr; while ((inputStr = br.readLine()) != null) { int patLength = 0;String pat = "";for (int j = 0; j < pats.length; j++) {pat = pats[j];patLength = pat.length();if (inputStr.contains(pat)) {int patIndex = inputStr.indexOf(pat);String patNextChar = inputStr.substring(patIndex + patLength,patIndex + patLength + 1);//如果*.js,*.css,.*.html 后面,不是引號或者問號; 說明不是帶參或者無參,可能是方法; 比如*.html(),*.css("style","...")if ("\"".equals(patNextChar) || "\'".equals(patNextChar)|| "?".equals(patNextChar)) {String str1 = inputStr.substring(0,patIndex + patLength);String str11 = inputStr.substring(patIndex + patLength);int leftIndex = 0;int index1 = str11.indexOf("\'");int index2 = str11.indexOf("\"");if (index1 == -1 && index2 != -1) {leftIndex = index2;} else if (index1 != -1 && index2 == -1) {leftIndex = index1;} else {leftIndex = index1 < index2 ? index1 : index2;}//開始替換String str2 = str11.substring(0,leftIndex + 1);String str3 = str11.substring(leftIndex + 1);//str2 部分,是需要替換的路徑部分if (str2.contains("?") && str2.contains("v=")) {//url后面已經有版本號int vLen = "v=".length();int midIndex = str2.indexOf("v=");String lastStr = str2.substring(midIndex + vLen);int lastLen = lastStr.length();if (lastStr.contains("&")) {str2 = str2.substring(0,midIndex + vLen) + v + lastStr.substring(lastStr.indexOf("&"));} else {str2 = str2.substring(0,midIndex + vLen) + v + lastStr.substring(lastLen - 1);}} else if (str2.contains("?") && !str2.contains("v=") ) {//url后面沒有版本號,但有其他內容//eg: url="xxxx.html?cno=" + data.cno;int wenHaoIndex = str2.indexOf("?");String str21 = str2.substring(0,wenHaoIndex + 1);String str22 = str2.substring(wenHaoIndex + 1);str2 = str21 + "v=" + v + "&" + str22;} else if(!str2.contains("?") && !str2.contains("v=") ) {//url后面沒有版本號,也沒有?str2 = "?v=" + v + str11.substring(leftIndex,leftIndex+1);}inputStr = str1 + str2 + str3;System.out.println("===============>inputStr=" + inputStr);System.out.println();}}}//換行inputStr += "\r\n";//寫出文件,并且強制輸出pw.write(inputStr);pw.flush();}} catch (UnsupportedEncodingException e) {System.err.print(e);} catch (FileNotFoundException e) {System.err.print(e);} catch (IOException e) {System.err.print(e);} finally {try {if (br != null) {br.close();}if (pw != null) {pw.close();}} catch (IOException e) {System.err.print(e);}} }//刪除原文件和重命名備份文件的方法 private static void deleteAndRename(String url) {String bakUrl = url + ".bak";//處理原始文件File f = new File(url);f.delete();File bakf = new File(bakUrl);bakf.renameTo(new File(url)); }

}

轉載于:https://my.oschina.net/u/2611678/blog/1816248

總結

以上是生活随笔為你收集整理的Web 静态文件版本升级代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。