隨筆 - 147  文章 - 71  trackbacks - 0
          <2009年11月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(1)

          隨筆分類(146)

          隨筆檔案(147)

          文章分類(28)

          文章檔案(28)

          喜歡的Blog

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          各國在游戲中兵模圖片的配置文件(*.spr)在gfx/map/units目錄下,主要有USA、JAP、GER、ITA、FRA、ENG、MIN(未定義政權(quán))和SOV這幾個國家,而其中只有SOV的飛機圖片是現(xiàn)代的,要把所有國家的飛機圖片全改回來,要花費很大的精力。如果使用編程方法,就可以大大提高效率。經(jīng)過對spr文件觀察發(fā)現(xiàn),有2種方案可以列入考慮范圍:1.將除SOV外的其它國家的T-BOMBER和T-FIGHTER的spr文件拷貝到其它分區(qū)的新建文件夾中,然后通過程序?qū)⑦@些文件中內(nèi)容全部替換為對應(yīng)SOV文件中的內(nèi)容,最后在復(fù)制粘貼回原來的文件夾。2.將SOV對應(yīng)的的T-BOMBER和T-FIGHTER的spr文件拷貝到其它分區(qū)的新建文件夾中,然后通過程序?qū)⑦@些文件名替換為其它國家的名字,最后在分步復(fù)制粘貼回原來的文件夾。以下程序采用的是第2種方案。

          import java.io.*;
          import java.util.*;

          public class RenameFile {
              
          public static void main(String args[]) throws IOException {
                  BufferedReader stdin 
          = new BufferedReader(new InputStreamReader(
                          System.in));
                  String line 
          = stdin.readLine();
                  StringTokenizer st 
          = new StringTokenizer(line);
                  String str 
          = st.nextToken();    //    原來文件名
                  String newstr = st.nextToken();    //    新的文件名
                  File fl = new File("E:\\units"); // 這里寫上發(fā)替換的文件夾路徑,注意使用雙斜杠
                  String[] files = fl.list();
                  File f 
          = null;
                  
          for (String file : files) {
                      f 
          = new File(fl, file);// 注意,這里一定要寫成File(fl,file)如果寫成File(file)是行不通的,一定要全路徑
                      String filename = f.getName();

                      
          /*
                       * 修改文件內(nèi)容
                       
          */

                      
          /*FileReader in = new FileReader(f);
                      // 獲得該文件的長度
                      int size = (int) f.length();
                      // 設(shè)置一個變量,對該文件中已被讀取的字符計數(shù),初始化該變量的值為0
                      int chars_read = 0;
                      // 從該文件中讀取數(shù)據(jù)
                      char[] data = new char[size];
                      while (in.ready())
                          chars_read += in.read(data, chars_read, size - chars_read);
                      String s = new String(data, 0, chars_read);
                      // System.out.println(s);
                      in.close();

                      int k = s.indexOf(newstr);
                      while (k > -1) {
                          s = s.substring(0, k) + str + s.substring(k + 3);
                          k = s.indexOf(newstr);
                      }
                      // System.out.println(s);

                      FileWriter out = new FileWriter(f);
                      out.write(s);
                      out.close();
          */


                      
          // 批量重命名文件
                      int k = filename.indexOf(str);
                      
          if (k > -1{
                          String newfilename 
          = filename.substring(0, k) + newstr
                                  
          + filename.substring(k + 3);
                          System.out.println(filename 
          + " " + newfilename);
                          f.renameTo(
          new File(fl.getAbsolutePath() + "\\"
                                  
          + filename.replace(filename, newfilename)));// 這里可以反復(fù)使用replace替換,當(dāng)然也可以使用正則表達(dá)式來替換了
                      }

                  }

              }

          }
          運行方式:
          第一次:輸入SOV USA回車,然后把修改后的文件復(fù)制粘貼回原來的文件夾。
          第二次:輸入USA JAP回車,然后把修改后的文件復(fù)制粘貼回原來的文件夾。
          ……
          注意:第n次運行時,空格前輸入應(yīng)是當(dāng)前新建文件夾中的文件名,后是你要修改的文件名。
          posted on 2009-11-09 20:35 飛翔天使 閱讀(1427) 評論(0)  編輯  收藏 所屬分類: Game
          主站蜘蛛池模板: 泾川县| 社会| 通许县| 平阳县| 庆安县| 富阳市| 且末县| 灌阳县| 太谷县| 江孜县| 通化县| 肥西县| 花莲市| 河北区| 吉水县| 万载县| 新丰县| 高唐县| 高要市| 江川县| 淅川县| 滨州市| 安图县| 宁安市| 密云县| 临潭县| 松滋市| 垣曲县| 大渡口区| 武冈市| 涟水县| 吉隆县| 安远县| 泽库县| 滕州市| 犍为县| 鸡泽县| 黎城县| 监利县| 泸溪县| 天全县|