, , XML . , , XML , , , , .
, java.io.ObjectOutputStream j ava.io.ObjectInputStream, ( ) java.util.Properties ( ).
, XML , " ", , Java, , , , .
, 2D- XML , .
.)
WWWWWWWWWW
WSWWWWW EW
W W K WW W
W W WW W
W WW WWWDW
W X W
WWWWWWWWWW
- , W - , S - , E - , K , D - , X - , , , , .
. , XML, - , XML " ", , , .
:
SpawnFrequency 0.1 20.5
HealthPoints 5
Stats 12 500 30 10 11
, . , Java, BufferedReader.readLine() , String.split(), . switch /else , split, , . , XML-, . XML, , , :
XML:
:
`<GuyStuff>`
`<SpawnFrequencyMinimum>0.1</SpawnFrequencyMinimum>`
`<SpawnFrequencyMaximum>20.5</SpawnFrequencyMaximum>`
`<Health>5</Health>`
`<Strength>12</Strength>`
`<Agility>500</Agility>`
`<Stamina>30</Stamina>`
`<TechnoWizardry>10</TechnoWizardry>`
`<JavaSkillz>11</JavaSkillz>`
`</GuyStuff>`
, java.io.Serializable, .
Serializable.
public class MySaveData implements java.io.Serializable //Serializable doesn't need any methods implemented, it simply says, "hey Java, my object can be written to a file."
{
float data1;
int data2;
Object data3;
}
import java.io.*;
public class DataReader
{
public void saveData(File loc, MySaveData obj1, MySaveData obj2, MySaveData obj3)
{
try
{
ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream(loc));
os.writeObject(obj1);
os.writeObject(obj2);
os.writeObject(obj3);
os.writeDouble(someValueINeededToWrite);
os.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
public void loadData(File loc, PlaceToPutData place)
{
try
{
ObjectInputStream is = new ObjectInputStream(new FileInputStream(loc));
place.obj1 = is.readObject();
place.obj2 = is.readObject();
readObject();
place.value = is.readDouble();
is.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
: new java.io.File("/Documents/MyGame/MyDataFile.whateverIFeelLikeAsLongAsItsConsistent").