各國在游戲中兵模圖片的配置文件(*.spr)在gfx/map/units目錄下,主要有USA、JAP、GER、ITA、FRA、ENG、MIN(未定義政權)和SOV這幾個國家,而其中只有SOV的飛機圖片是現代的,要把所有國家的飛機圖片全改回來,要花費很大的精力。如果使用編程方法,就可以大大提高效率。經過對spr文件觀察發現,有2種方案可以列入考慮范圍:1.將除SOV外的其它國家的T-BOMBER和T-FIGHTER的spr文件拷貝到其它分區的新建文件夾中,然后通過程序將這些文件中內容全部替換為對應SOV文件中的內容,最后在復制粘貼回原來的文件夾。2.將SOV對應的的T-BOMBER和T-FIGHTER的spr文件拷貝到其它分區的新建文件夾中,然后通過程序將這些文件名替換為其它國家的名字,最后在分步復制粘貼回原來的文件夾。以下程序采用的是第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"); // 這里寫上發替換的文件夾路徑,注意使用雙斜杠
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();


/**//*
* 修改文件內容
*/

/**//*FileReader in = new FileReader(f);
// 獲得該文件的長度
int size = (int) f.length();
// 設置一個變量,對該文件中已被讀取的字符計數,初始化該變量的值為0
int chars_read = 0;
// 從該文件中讀取數據
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)));// 這里可以反復使用replace替換,當然也可以使用正則表達式來替換了
}
}
}
}
運行方式:
第一次:輸入SOV USA回車,然后把修改后的文件復制粘貼回原來的文件夾。
第二次:輸入USA JAP回車,然后把修改后的文件復制粘貼回原來的文件夾。
……
注意:第n次運行時,空格前輸入應是當前新建文件夾中的文件名,后是你要修改的文件名。
posted on 2009-11-09 20:35
飛翔天使 閱讀(1420)
評論(0) 編輯 收藏 所屬分類:
Game