⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setuprecord.java

📁 这是一个Java编写的手机象棋游戏
💻 JAVA
字号:
import java.io.*;
import javax.microedition.rms.*;
import javax.microedition.lcdui.*;

public class SetupRecord
{
	private RecordStore	setupRecord = null;
	private boolean		isModified	= false;

	public SetupRecord()
	{
		try
		{
			setupRecord=RecordStore.openRecordStore("SetupRecord",true);
		}
		catch(RecordStoreException e)
		{
			//System.out.println("打开PhaseRecord出现异常");
			Alert alert=new Alert("Message","打开用户设置记录存储文件时出现错误",null,AlertType.WARNING);
			Chess.dis.setCurrent(alert);
			Chess.quitApp();
		}
	}
	public Setup getUserSetup()
	{
		int recordNumber = 0;
		Setup setup = null;
		try
		{
			recordNumber = setupRecord.getNumRecords();
		}
		catch (RecordStoreException e)
		{
			//System.out.println("获取记录个数时出现异常");
			Alert alert=new Alert("Message","获取记录个数时出现异常",null,AlertType.WARNING);
			Chess.dis.setCurrent(alert);
			Chess.quitApp();
		}
		if(recordNumber == 0)
		{
				int[][] n = new int[9][3];
				n[0][0] = 0;
				n[0][1] = 0;
				n[0][2] = 0;
				n[1][0] = 255;
				n[1][1] = 255;
				n[1][2] = 0;
				n[2][0] = 0;
				n[2][1] = 200;
				n[2][2] = 50;
				n[3][0] = 255;
				n[3][1] = 255;
				n[3][2] = 0;
				n[4][0] = 255;
				n[4][1] = 0;
				n[4][2] = 0;
				n[5][0] = 0;
				n[5][1] = 255;
				n[5][2] = 0;
				n[6][0] = 0;
				n[6][1] = 0;
				n[6][2] = 255;
				n[7][0] = 255;
				n[7][1] = 255;
				n[7][2] = 0;
				n[8][0] = 255;
				n[8][1] = 0;
				n[8][2] = 255;
				setup = new Setup();
				setup.setCanvas(n);
				setup.setSleepTime(200);
		}
		else
		{
			byte[] data = null;
			try
			{
				data = setupRecord.getRecord(1);
			}
			catch (RecordStoreException e)
			{
				//System.out.println("获取设置时出现异常");
				Alert alert=new Alert("Message","获取设置时出现异常",null,AlertType.WARNING);
				Chess.dis.setCurrent(alert);
				Chess.quitApp();
			}
			setup = setupDeserialize(data);
		}
		return setup;
	}
	public int closeSetupRecord()
	{
		try
		{
			setupRecord.closeRecordStore();
		}
		catch(RecordStoreException e)
		{
			//System.out.println("关闭PhaseRecord时出现异常");
			//errorDeal.push("RestRecord#2", "关闭残局记录存储文件时出现错误");
			return 1;
		}
		return 0;
	}
	public int	modifySetup(Setup setup)
	{
		byte[] data = setupSerialize(setup);
		int n = 0;
		try
		{
			n = setupRecord.getNumRecords();
		}
		catch (RecordStoreException e)
		{
			//System.out.println("获取设置记录个数时出现了异常");
			return 5;
		}
		if(n == 0)
		{
			try
			{
				setupRecord.addRecord(data, 0, data.length);
			}
			catch (RecordStoreException e)
			{
				//System.out.println("添加设置记录时出现了异常");
				return 4;
			}
			return 0;
		}
		else
		{
			try
			{
				setupRecord.setRecord(1, data, 0, data.length);
			}
			catch(RecordStoreNotOpenException e)
			{
				//System.out.println("更新设置时出现RecordStoreNotOpenException异常"+e);
				//errorDeal.push("RestRecord#18", "重命名残局记录时打开存储文件错误");
				return 1;
			}
			catch(InvalidRecordIDException e)
			{
				//System.out.println("更新设置时出现InvalidRecordIDException异常"+e);
				//errorDeal.push("RestRecord#19", "重命名残局记录时出现非法ID错误");
				return 2;
			}
			catch(RecordStoreException e)
			{
				//System.out.println("更新设置时出现RecordStoreException异常"+e);
				//errorDeal.push("RestRecord#20", "重命名残局记录时出现未知存储文件操作错误");
				return 3;
			}
		}
		return 0;
	}
	//**************************序列化与反序列化方法部分
	private byte[]	setupSerialize(Setup setup)
	{
		DataOutputStream		dos=null;
		ByteArrayOutputStream	baos=null;
		try
		{
			baos=new ByteArrayOutputStream();
			dos=new DataOutputStream(baos);
			//System.out.println("开始序列化");
			int[][] n = setup.getCanvas();
			for(int i = 0; i < 9; i++)
			{
				for(int j = 0; j < 3; j++)
				{
					dos.writeInt(n[i][j]);
				}
			}
			dos.writeInt(setup.getSleepTime());
		}
		catch (IOException e)
		{
			//System.out.println("序列化setupRecord时出现了异常");
			//errorDeal.push("SetupRecord#22", "序列化设置时出现输入输出错误");
			Alert alert=new Alert("Message","序列化设置时出现输入输出错误",null,AlertType.WARNING);
			Chess.dis.setCurrent(alert);
			Chess.quitApp();
		}
		return baos.toByteArray();
	}
	private Setup	setupDeserialize(byte[]	data)
	{
		ByteArrayInputStream  bais=null;
		DataInputStream		dis=null;
		Setup	setup = new Setup();
		try
		{
			bais = new ByteArrayInputStream(data);
			dis = new DataInputStream(bais);
			int[][] n = new int[9][3];
			for(int i = 0; i < 9; i++)
			{
				for(int j = 0; j < 3; j++)
				{
					n[i][j] = dis.readInt();
				}
			}
			int sleepTime = dis.readInt();
			setup.setCanvas(n);
			setup.setSleepTime(sleepTime);
		}
		catch (IOException e)
		{
			//System.out.println("反序列化setupRecord时出现了异常");
			//errorDeal.push("SetupRecord#23", "反序列化设置时出现输入输出错误");
			Alert alert=new Alert("Message","反序列化设置时出现输入输出错误",null,AlertType.WARNING);
			Chess.dis.setCurrent(alert);
			Chess.quitApp();
		}
		return setup;
	}
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -