各國在游戲中兵模圖片的配置文件(*.spr)在gfx/map/units目錄下,主要有USA、JAP、GER、ITA、FRA、ENG、MIN(未定義政權(quán))和SOV這幾個國家,而其中只有SOV的飛機(jī)圖片是現(xiàn)代的,要把所有國家的飛機(jī)圖片全改回來,要花費(fèi)很大的精力。如果使用編程方法,就可以大大提高效率。經(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è)置一個變量,對該文件中已被讀取的字符計(jì)數(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á)式來替換了
}
}
}
}
運(yùn)行方式:
第一次:輸入SOV USA回車,然后把修改后的文件復(fù)制粘貼回原來的文件夾。
第二次:輸入U(xiǎn)SA JAP回車,然后把修改后的文件復(fù)制粘貼回原來的文件夾。
……
注意:第n次運(yùn)行時(shí),空格前輸入應(yīng)是當(dāng)前新建文件夾中的文件名,后是你要修改的文件名。
posted on 2009-11-09 20:35
飛翔天使 閱讀(1419)
評論(0) 編輯 收藏 所屬分類:
Game