各国在游戏中兵模图片的配置文件(*.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
飞翔天使 阅读(1411)
评论(0) 编辑 收藏 所属分类:
Game