所以我目前正在制作一个游戏(一个超过3500行代码的巨大游戏),并且在编写游戏的保存功能时,我碰到了一个error.it保存得很好,但是当我尝试负载,我保存的游戏它的一个文件返回一个错误:java游戏保存程序不会工作
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at com.torstein.Mars_Settlement.States.Building.Parse(Building.java:56)
at com.torstein.Mars_Settlement.Managers.SavingManager.Load(SavingManager.java:102)
at com.torstein.Mars_Settlement.SLGUI$2.actionPerformed(SLGUI.java:155)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
等等...
它basicly说,我用它来扫描该文件的扫描仪将返回“” 。我已经检查了多次源代码,但我无法让我工作。这里是SavingManager类:
0
R:4:4:0:false
:
false
false
1000
1000
500
1000
false
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
1
0
0
2
0
3
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
1
0
3
0
2
0
2
0
0
0
0
0
0
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
0:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
-1:100:0:1
false
:
:
:
:
:
:
Building.Parse:
public static Building Parse(String parsef){
int id = Integer.parseInt(parsef.split(":")[0]);
Building b =id == -1 ? No :
id == 0 ? Base :
id == 1 ? UranCollectorBase :
id == 2 ? IceCollectorBase :
id == 3 ? NuclearReactor :
id == 4 ? House :
id == 5 ? IceMeltor :
id == 6 ? GunHouse :
id == 7 ? ResearchCenter :
id == 8 ? GBase :
id == 9 ? SBase :
id == 10 ? MBase :
id == 11 ? FlowerCollector :
id == 12 ? WindMill :
id == 13 ? VechleProduser :
id == 14 ? OBase :
No;
b.health = Integer.parseInt(parsef.split(":")[1]);
b.Tanks = Integer.parseInt(parsef.split(":")[2]);
b.lookfor=carStates.Parse(Integer.parseInt(parsef.split(":")[3]));
return b;
}
如果有别的,你将不得不需要,即时通讯试图解析
package com.torstein.Mars_Settlement.Managers;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Formatter;
import java.util.Scanner;
import com.torstein.Mars_Settlement.Bases;
import com.torstein.Mars_Settlement.Connection;
import com.torstein.Mars_Settlement.Main;
import com.torstein.Mars_Settlement.Eneties.CarEnety;
import com.torstein.Mars_Settlement.Eneties.LightGunnerEntity;
import com.torstein.Mars_Settlement.Eneties.Pepole;
import com.torstein.Mars_Settlement.Eneties.Plant;
import com.torstein.Mars_Settlement.Eneties.TankEntity;
import com.torstein.Mars_Settlement.States.Building;
import com.torstein.Mars_Settlement.States.GroundState;
public class SavingManager {
public static void Save(String Path){
Main m = Main.UseThis;
File txt = new File(Path);
txt.delete();
Formatter f = null;
try {
f = new Formatter(Path);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
f.format("%d%n",m.pepoleOut);
for(Bases b : m.bases)
f.format(b.toString()+"%n");
f.format(":%n");
f.format(m.Fusion+"%n");
f.format(m.Compact+"%n");
f.format(m.Money+"%n");
f.format(m.Water+"%n");
f.format(m.Energy+"%n");
f.format(m.Food+"%n");
f.format(m.Venus+"%n");
for(int x = 0;x<20;x++)
for(int y = 0;y<20;y++)
f.format(m.stateG[x][y].T+"%n");
for(int x = 0;x<20;x++)
for(int y = 0;y<20;y++)
f.format(m.stateB[x][y].toString()+"%n");
f.format(m.Terraformed+"%n");
for(CarEnety b : m.cars)
f.format(b.toString()+"%n");
f.format(":%n");
for(Pepole b : m.Pepole)
f.format(b.toString()+"%n");
f.format(":%n");
for(Plant b : m.plants)
f.format(b.toString()+"%n");
f.format(":%n");
for(Connection b : m.Connections)
f.format(b.toString()+"%n");
f.format(":%n");
for(TankEntity b : m.Tanks)
f.format(b.toString()+"%n");
f.format(":%n");
for(LightGunnerEntity b : m.LightGunners)
f.format(b.toString()+"%n");
f.format(":%n");
f.close();
}
public static void Load(String Path){
final Main m = Main.UseThis;
m.Contiuecapable=true;
m.Treset();
Scanner scan = null;
try {
scan = new Scanner(new File(Path));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
String cln;
m.pepoleOut = scan.nextInt();
while(!(cln = scan.nextLine()).startsWith(":"))
if(Bases.parseBase(cln)!=null)m.bases.add(Bases.parseBase(cln));
m.Fusion = scan.nextBoolean();
m.Compact = scan.nextBoolean();
m.Money = scan.nextInt();
m.Water = scan.nextInt();
m.Energy = scan.nextInt();
m.Food = scan.nextInt();
m.Venus = scan.nextBoolean();
for(int x = 0;x<20;x++)
for(int y = 0;y<20;y++)
m.stateG[x][y]=GroundState.Parse(scan.nextInt());
for(int x = 0;x<20;x++)
for(int y = 0;y<20;y++)
{
m.stateB[x][y]= Building.Parse(scan.nextLine());
if(m.stateB[x][y].index==6)
m.addHouseSpirit(x,y);
}
m.Terraformed = scan.nextBoolean();
while(!(cln = scan.nextLine()).startsWith(":"))
if(CarEnety.Parse(cln)!=null)m.cars.add(CarEnety.Parse(cln));
while(!(cln = scan.nextLine()).startsWith(":"))
if(Pepole.Parse(cln)!=null)m.Pepole.add(Pepole.Parse(cln));
while(!(cln = scan.nextLine()).startsWith(":"))
if(Plant.Parse(cln)!=null)m.plants.add(Plant.Parse(cln));
while(!(cln = scan.nextLine()).startsWith(":"))
if(Connection.Parse(cln)!=null)m.Connections.add(Connection.Parse(cln));
while(!(cln = scan.nextLine()).startsWith(":"))
if(TankEntity.Parse(cln)!=null)m.Tanks.add(TankEntity.Parse(cln));
while(!(cln = scan.nextLine()).startsWith(":"))
if(LightGunnerEntity.Parse(cln)!=null)m.LightGunners.add(LightGunnerEntity.Parse(cln));
scan.close();
}
}
文件内容修复这个错误,请说清楚。谢谢你的时间。托尔斯泰。
当你在调试器中运行它时,你学到了什么? – 2012-02-26 15:22:06
扫描仪在错误发生之前仍然有输入,它停留在循环的非常重要的元素上,这基本上是我注意到的所有重要的东西 – 2012-02-26 15:24:27
好的。我认为如果你想在这里获得有用的帮助,你需要将其减少到一个最小的测试用例,它可以显示出问题(参见http://sscce.org)。 – 2012-02-26 15:26:05