|
|
|
|
移动端

3.2.2 文件存储

《Android游戏开发从入门到精通》第3章Android 游戏开发基础,本章将引导读者开始Android 手机游戏开发,详细讲解Android 游戏开发的基本知识,为读者进行本书后面知识的学习打下基础。本节为大家介绍文件存储。

作者:王玉芹来源:机械工业出版社|2017-11-14 11:04

年前最后一场技术盛宴 | 1月27日与京东、日志易技术大咖畅聊智能化运维发展趋势!


3.2.2 文件存储

虽然使用SharedPreferences 存储方式的方法非常方便,但是这种方式的缺点也非常明显——只适合存储比较简单的数据。如果想在Android 系统中存储更多的数据,有多种方法可供我们选择,例如本小节将要讲解的文件存储方式就是一种很好的选择。和传统的在Java 中实现I/O 的程序类似,在Android 中,可以使用方法openFileInput()和方法openFileOuput()来读取设备上的文件,例如下面的代码。

  1. String FILE_NAME = "tempfile.tmp"; //确定要操作文件的文件名  
  2. //初始化  
  3. FileOutputStream fos = openFileOutput(FILE_NAME, Context.MODE_PRIVATE);  
  4. FileInputStream fis = openFileInput(FILE_NAME); //创建写入流 

在上述代码中,方法openFileInput()和方法openFileOuput()只能读取该应用目录下的文件,如果读取非其自身目录下的文件则会抛出异常。如果在调用FileOutputStream 时指定的文件不存在,Android 会自动创建它。并且在默认情况下,在写入的时候会覆盖原来文件的内容。如果想把新写入的内容附加到原文件内容之后,则可以指定其模式为Context.MODE_APPEND。在默认情况下,使用方法openFileOutput()创建的文件只能被其调用的应用程序使用,其他应用程序无法读取这个文件。如果需要在不同的应用中共享数据,可以使用ContentProvider 存储方式实现。

如果应用程序需要使用一些额外的资源文件,例如用于测试音乐播放器是否可以正常工作的MP3 文件,我们可以将这些测试文件放在应用程序的“/res/raw/”目录下,例如命名为mydatafile.mp3。此时就可以在应用程序中使用getResources()方法获取资源,然后用openRawResource()方法(不带后缀的资源文件名)打开这个文件,具体实现代码如下。

  1. Resources myResources = getResources();  
  2. InputStream myFile = myResources.openRawResource(R.raw.myfilename); 

除了使用方法openFileInput()和方法openFileOuput()读写文件外,在Android 中还可以使用deleteFile()和fileList()等方法来操作文件。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

C#和.NET核心技术

本书重点讲解如何用实用的代码来解决具体的实际问题。本书的内容覆盖面很广,从新的C#范型到Web服务,从反射到安全等都有涉及。系统地介绍...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊