六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 171|回复: 0

Android学习笔记(10)-开始做一个数独游戏[中]

[复制链接]

升级  69.5%

780

主题

780

主题

780

主题

探花

Rank: 6Rank: 6

积分
2390
 楼主| 发表于 2013-1-30 01:06:25 | 显示全部楼层 |阅读模式
继续,今天讨论的是记录文件的读写。因为原来在Brew平台上实现的数独将题库是一个二进制文件,所以在Android就直接拿那个文件来用了。

计划实现两个函数,先是LoadTiList(),加载题库,先装题库文件放在资源里,然后从资源里加载它作为一个DataInputStream即可。代码也没几行,如下:
<div style="">publicstaticbooleanLoadTiList(MainActivityme)
...{
DataInputStream
in=null;
try
...{
in=newDataInputStream(me.getResources().openRawResource(R.raw.ti));

byte[]bufC4=newbyte[4];
byte[]bufC81=newbyte[81];

//总个数
in.read(bufC4,0,4);
intlen=((int)bufC4[3]<<24)+((int)bufC4[2]<<16)+((int)bufC4[1]<<8)+(int)bufC4[0];

for(inti=0;i<len;i++)
...{
Questionti
=newQuestion();

//代码
in.read(bufC4,0,4);
ti.code
=(long)(((long)bufC4[3]<<24)+((long)bufC4[2]<<16)+((long)bufC4[1]<<8)+(long)bufC4[0]);
//时间
in.read(bufC4,0,4);
SharedPreferencessp
=me.getPreferences(Context.MODE_WORLD_READABLE);
ti.time
=sp.getLong(Long.toString(ti.code),0);
//数据
in.read(bufC81,0,81);
for(intj=0;j<81;j++)ti.data[j]=bufC81[j];
me.tiList.add(ti);
}

in.close();
}

catch(Exceptionex)...{
returnfalse;
}

finally...{
try...{in.close();}catch(Exceptione)...{}
}

returntrue;
}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表