📄 xport.java
字号:
import java.io.*;
public class Xport{
public static void main(String args[]){
Xport X = new Xport();
if(X.make()){
System.out.println("生成文件成功,请在当前目录下查找b.xpc文件!");
}
else{
System.out.println("生成文件失败,请检察当前目录中的a.txt文件格式是否正确!");
}
}
//生成XPC文件的方法
public boolean make(){
try{
String codes;
int m,i,n=0;
int[] codesinfo;
codesinfo = this.test("D:/Xport/a.txt");
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream("D:/Xport/a.txt")));
FileOutputStream bw = new FileOutputStream("D:/Xport/b.xpc");
//加入文件头
bw.write(14);bw.write(0);bw.write(0);bw.write(0);bw.write(83);bw.write(104);bw.write(97);bw.write(114);bw.write(107);bw.write(80);bw.write(111);bw.write(114);bw.write(116);bw.write(67);bw.write(79);bw.write(68);bw.write(69);bw.write(83);bw.write(0);bw.write(0);bw.write(0);bw.write(0);bw.write(0);bw.write(0);bw.write(0);bw.write(0);bw.write(0);bw.write(0);bw.write(0);bw.write(0);bw.write(1);bw.write(0);bw.write(0);bw.write(0);
//GAME名字字符数
codes = br.readLine();
bw.write(codes.length());bw.write(0);bw.write(0);bw.write(0);
//GAME名字
for(i=0;i<codes.length();i++){
bw.write(codes.charAt(i));
}
//CODE个数
bw.write(codesinfo.length-1);
bw.write(0);bw.write(0);bw.write(0);
do{
//读取一行
codes = br.readLine();
if(codes==null){break;}
//判断行的第一个字符是否是[
if(codes.charAt(0)==91){
n++;
//取出CODE的名字并写入文件
bw.write(codes.length()-2);
bw.write(0);bw.write(0);bw.write(0);
//将[]之间的字符写入文件
for(i=1;i<codes.lastIndexOf(93);i++){
bw.write(codes.charAt(i));
}
for(i=0;i<8;i++)bw.write(0);
//写入CODE代码行数
m=codesinfo[n]*2;
bw.write(m);
bw.write(0);bw.write(0);bw.write(0);
}
//判断行的第一个字符是否是1-9、A-Z、a-z
if(codes.charAt(0)>47 && codes.charAt(0)<58 || codes.charAt(0)>64 && codes.charAt(0)<91 || codes.charAt(0)>96 && codes.charAt(0)<123){
bw.write(8);bw.write(0);bw.write(0);bw.write(0);
for(i=0;i<8;i++){
bw.write(codes.charAt(i));
}
bw.write(8);bw.write(0);bw.write(0);bw.write(0);
for(i=0;i<8;i++){
bw.write(codes.charAt(i+9));
}
}
}while(true);
bw.flush();
br.close();
bw.close();
return true;
}catch(Exception e){return false;}
}
//反回TXT文件信息的方法
public int[] test(String file){
try{
String str;
int x=0;
BufferedReader brw = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
do{
str=brw.readLine();
if(str == null)
break;
if(str.charAt(0)==91)
x++;
}while(true);
brw.close();
int[] codes=new int[x+1];
int code=0;
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
br.readLine();
do{
str=br.readLine();
if(str == null)
break;
if(str.charAt(0)==91)
code++;
if(str.charAt(0)>47 && str.charAt(0)<58 || str.charAt(0)>64 && str.charAt(0)<91 || str.charAt(0)>96 && str.charAt(0)<123)
codes[code]++;
}while(true);
br.close();
return codes;
}catch(Exception e){return null;}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -