📄 saveplayer.java
字号:
package com.lovo.pig.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Collections;
import java.util.TreeMap;
import com.lovo.pig.model.Player;
/**
* 存/取 玩家信息工具类
* @author fw
*
*/
public class SavePlayer {
/**保存玩家信息的集合 键为分数,值为整个玩家信息*/
public TreeMap<Integer,Player> plays;
/**做对象序列化通过对象流要写入文件名称*/
private static final String fileName = "save.dat";
private SavePlayer(){
}
private static SavePlayer sp = null;
/**单例模式获得当前类对象*/
public static SavePlayer getSavePlayer()
{
if(sp==null)
{
sp = new SavePlayer();
}
return sp;
}
/**
* 获得文件
* @return
* @throws IOException
*/
private File getFile() throws IOException
{
File file = new File(fileName);
/**如果文件不存在则创建一个新的*/
if(!file.exists())
{
file.createNewFile();
}
return file;
}
/**
* 保存玩家信息
* 通过对象输出流向文件里写入
* @param plays
* @throws FileNotFoundException
* @throws IOException
*/
public void savePlayer(TreeMap<Integer,Player> plays) throws FileNotFoundException, IOException
{
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(this.getFile()));
oos.writeObject(plays);
oos.flush();
oos.close();
}
/**
* 获得玩家信息
* 通过对象输入流从文件里读取
* @return
* @throws FileNotFoundException
* @throws IOException
* @throws ClassNotFoundException
*/
@SuppressWarnings("unchecked")
public TreeMap<Integer,Player> loadPlayer() throws FileNotFoundException, IOException, ClassNotFoundException
{
FileInputStream fis = new FileInputStream(this.getFile());
/**
* 如果文件里可以读取的字节不为0(当前玩家不是第1个游戏者)
* 再用对象输入流读取文件内容
* */
if(fis.available()!=0)
{
ObjectInputStream ois = new ObjectInputStream(fis);
this.plays = (TreeMap<Integer, Player>) ois.readObject();
ois.close();
}
else
{
/**如果是第1个玩的玩家 则初始化一个空的降序排列的TreeMap*/
this.plays = new TreeMap<Integer,Player>(Collections.reverseOrder());
}
return this.plays;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -