2015-04-22 78 views
1

可以在内部存储器中读取和写入基本数据类型/从文件读取原始数据类型吗?Android:将原始类型读写到内部存储器

我发现很多教程和使用read(bytes [])和类似函数的例子,但没有用于读和写,例如一个类的数据成员或一堆整数,双精度和字符串。依靠一个函数,盲目地读取一些字节数,然后尝试用偏移量和类型转换来解析结果似乎对我来说不是Android,但我似乎无法找到替代方案。

也许我试图用错误的工具来做错误的工作,这就是为什么我会遇到这个障碍。我正在编写一个通过BluetoothLE连接的应用程序(使用可能是我见过的最糟糕的API,但这就是项目要求所要求的,所以我坚持使用它),并且在连接到设备后,我想要保存设备的“名称”,这似乎与MAC地址类似,但是对于蓝牙,下次我看到该设备时,我想要显示其“友好名称”,这是一个更容易理解的名称,我将在后面了解到第一次连接到设备。这让我显示之前连接的设备的友好名称 - 并跳过验证步骤。也许有,比内部存储更好的机制来存储这种数据?即几个字符串和一个int。

+0

Lamorak和SuNnY_sYeD的回答都是我想要完成的工作,但他们并没有真正回答标题问题。我会把这个开放一段时间,看看是否出现了一个非常好的答案。 – LostOracle

回答

1

有几种方法,请阅读documantation。为了您的情况,您可以使用SharedPreferences或更好地创建简单的SQLite数据库。

+0

我考虑过使用SharedPreferences,但我的理解是您需要使用键值对,并且只能存储基元。由于缺乏更好的术语,我可能需要存储多组名称友好的名称标识“结构”,并且需要将列表与每个键相关联。 SharedPreferences可以处理这个问题吗?我将不得不查看SQLite数据库,看看它是否对我的应用程序没有影响。 – LostOracle

+0

是'SharedPreferences'只能存储简单的键值对,你描述的绝对是SQLite的情况。在android中使用它并不是很难,我不会认为它是过度的。 – Lamorak

1

使用SharedPreferences但将您的Object转换为json对象,然后将其存储到SharedPreferences中,并在您想要读取数据时反转进程。

+0

这似乎是简单的解决方案 - 我喜欢轻松不要误会我的意思 - 但感觉就像作弊。 SharedPreferences是否意味着以这种方式使用? – LostOracle