java game saving program wont work
<p>so i am currently making a game (a huge one over 3500 lines of code) and when programing the saving feature of the game i ran into an error.it saves just fine but when i try to load one of the files that i saved the game to it returns an error: </p>

<pre><code>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)
</code></pre>

<p>and so on...</p>

<p>it is basicly saying that the Scanner i use to scan the file is returning "". i have checked over source code many times but i cant get i to work. here is the SavingManager Class:</p>

<pre><code>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&lt;20;x++)
            for(int y = 0;y&lt;20;y++)
                f.format(m.stateG[x][y].T+"%n");
        for(int x = 0;x&lt;20;x++)
            for(int y = 0;y&lt;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&lt;20;x++)
            for(int y = 0;y&lt;20;y++)
                m.stateG[x][y]=GroundState.Parse(scan.nextInt());


        for(int x = 0;x&lt;20;x++)
            for(int y = 0;y&lt;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();
    }

}
</code></pre>

<p>File content that im trying to parse:</p>

<pre><code>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
:
:
:
:
:
:
</code></pre>

<p>Building.Parse:</p>

<pre><code>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;
    }
</code></pre>

<p>if there is anything else you will have to need to fix this error please say so. Thanks for your time. Torstein.</p>
