1. 程式人生 > >【IO】使用Properties進行資料讀寫

【IO】使用Properties進行資料讀寫

Properties繼承自Hashtable,使用鍵值對儲存資料,便於進行資料管理。下面是一個模擬遊戲資料儲存的例子。

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;

public class Test {
	private static final String PATH = "C:\\Users\\student\\Desktop";
	public static void main(String[] args) throws IOException{
		
		Properties prop = new Properties();
		
		int newScore = 10;//當前得分
		String difficulty = "Easy";//當前遊戲難度
		
		//首先判斷檔案是否存在
		if(new File(PATH,"test.properties").exists()){
			//載入檔案
			prop.load(new FileReader(new File(PATH,"test.properties")));
			//判斷本次遊戲難度
			if(difficulty == "Easy"){
				//判斷是否超過歷史分數
				if(Integer.parseInt(prop.getProperty("easy_score")) < newScore){
					prop.setProperty("easy_score", newScore+"");//更改儲存資料
					prop.store(new FileWriter(new File(PATH,"test.properties")), "GameData");
					
				}
			}else{
				if(Integer.parseInt(prop.getProperty("hard_score")) < newScore){
					prop.setProperty("hard_score", newScore+"");
					prop.store(new FileWriter(new File(PATH,"test.properties")), "GameData");
				}
			}
		//檔案不存在則說明第一次遊戲,初始化遊戲檔案
		}else{
			prop.setProperty("easy_score", "0");
			prop.setProperty("hard_score", "0");
			prop.store(new FileWriter(new File(PATH,"test.properties")), "GameData");
		}
	}
}

第一次執行結果:

#GameData
#Sun Sep 11 21:40:23 CST 2016
hard_score=0
easy_score=0

第二次執行結果:

#GameData
#Sun Sep 11 21:40:39 CST 2016
easy_score=10
hard_score=0