📄 propertyset.java
字号:
package iniset;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
import iniset.finals.SetDatas;
/**
* 各种设置类,通过从文件当中获取设置信息,以单子模式实现
*
* @author B.Lee
*
*/
public class PropertySet {
/** 是否有音效 */
private int sound;
/** 是否有背景音乐 */
private int music;
/** 人与人下还是人与电脑下 */
private int model;
/** 黑棋先下还是白棋先下 */
private int first;
/** 是否允许悔棋 */
private int regret;
/**
* 本类的一个实例,用来实现单子模式
*/
private static PropertySet propertySet = null;
/**
* 构造函数,初始化各属性值
*
*/
private PropertySet() {
loadPropertySet();
}
public static PropertySet getPropertySet() {
if(propertySet == null) {
propertySet = new PropertySet();
return propertySet;
} else {
return propertySet;
}
}
/**
* 从文件当中读取上一次保存的设置信息并使之生效 如果文件不存在则将所有的信息置为默认值
*
* @return 无
*/
private void loadPropertySet() {
Properties properties = null;
FileInputStream read = null;
String soundTem = "";
String musicTem = "";
String modelTem = "";
String firstTem = "";
String regretTem = "";
// 以下代码从文件当中获取信息
try {
read = new FileInputStream(new File("five.property"));
properties = new Properties();
properties.load(read);
// 从文件当中读取信息,如果文件当中某个key被删除则该key置为默认值
soundTem = properties.getProperty("sound", Integer
.toString(SetDatas.SOUND_ON));
musicTem = properties.getProperty("music", Integer
.toString(SetDatas.MUSIC_ON));
modelTem = properties.getProperty("model", Integer
.toString(SetDatas.PEOPLE_VS_COMPUTER));
firstTem = properties.getProperty("first", Integer
.toString(SetDatas.BLACK_FIRST));
regretTem = properties.getProperty("regret", Integer
.toString(SetDatas.REGRET_ABLE));
} catch (IOException ex) {
// 如果文件不存在则置为默认值
soundTem = Integer.toString(SetDatas.SOUND_ON);
musicTem = Integer.toString(SetDatas.MUSIC_ON);
modelTem = Integer.toString(SetDatas.PEOPLE_VS_COMPUTER);
firstTem = Integer.toString(SetDatas.BLACK_FIRST);
regretTem = Integer.toString(SetDatas.REGRET_ABLE);
}
// 以下代码将从文件当中获取的信息转化为程序能够识别的值
try {
this.setSound(Integer.parseInt(soundTem));
this.setMusic(Integer.parseInt(musicTem));
this.setModel(Integer.parseInt(modelTem));
this.setFirst(Integer.parseInt(firstTem));
this.setRegret(Integer.parseInt(regretTem));
} catch (NumberFormatException ex) {// 如果文件当中的数值被人为改变可能会抛出此异常
this.setSound(SetDatas.SOUND_ON);
this.setMusic(SetDatas.MUSIC_ON);
this.setModel(SetDatas.PEOPLE_VS_COMPUTER);
this.setFirst(SetDatas.BLACK_FIRST);
this.setRegret(SetDatas.REGRET_ABLE);
}
}
/**
* 将设置信息保存到文件当中
*
* @return true 保存成功
* false 保存失败
*/
public boolean savePropertySet() {
boolean flag = false;
Properties properties = null;
FileOutputStream save = null;
try {
save = new FileOutputStream(new File("five.property"));
properties = new Properties();
properties.setProperty("sound", Integer.toString(sound));
properties.setProperty("music", Integer.toString(music));
properties.setProperty("model", Integer.toString(model));
properties.setProperty("first", Integer.toString(first));
properties.setProperty("regret", Integer.toString(regret));
properties.store(save, "The last setting:\r\nAuthor B.Lee");
flag = true;
} catch (IOException ex) {
flag = false;// 发生错误,保存属性失败
}
return flag;
}
public int getFirst() {
return first;
}
public void setFirst(int first) {
if (first != 0 && first != 1) {
first = 1;
} else {
this.first = first;
}
}
public int getModel() {
return model;
}
public void setModel(int model) {
if (model != 0 && model != 1) {
this.model = 1;
} else {
this.model = model;
}
}
public int getMusic() {
return music;
}
public void setMusic(int music) {
if (music != 0 && music != 1) {
this.music = 1;
} else {
this.music = music;
}
}
public int getRegret() {
return regret;
}
public void setRegret(int regret) {
if (regret != 0 && regret != 1) {
this.regret = 1;
} else {
this.regret = regret;
}
}
public int getSound() {
return sound;
}
public void setSound(int sound) {
if (sound != 0 && sound != 1) {
this.sound = 1;
} else {
this.sound = sound;
}
}
// //test
// public static void main(String[] args) {
// PropertySet ss = new PropertySet();
// ss.savePropertySet();
// }
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -