?? 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 + -