首页 > 代码库 > android数据存储_内部存储

android数据存储_内部存储

源码下载(免下载积分):下载     

 你可以直接存储数据到内部存储中,默认情况下,文件存储到内部存储中是私有的,不能被 
  其他程序访问,当卸载应用程序,这些文件会被移除。 
  创建并写入数据可以有两种方法:

  • 使用java中的相关的方法,
  • 使用android.content中的相关方法, 
    • 调用 openFileOutput(),并返回FileOutputStream对象
    • 调用FileOutputStream对象的write()方法
    • 关闭流 

     读文件也是基本相同的方式。 
     在读文件有一点小技巧:如果想在编译时保存一个静态文件在你的应用程序中,保存文件到 
  res/raw/directory.可以使用openRawResource()方法来打开文件,并返回一个InputStream 
  对象,然后就能读写数据了。 
 

代码: 
方法一:

FileOutputStream writeStream = null;
FileOutputStream fileOutputStream = null;
switch (view.getId()) {
    case R.id.button1:
    //创建的文件其他程序不能访问
    File file1 = new File(getFilesDir(),FILE1);
    try {
        //写入数据
        writeStream = new FileOutputStream(file1);
        writeStream.write("haha".getBytes());
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    finally{
        try {
            if (writeStream != null) 
                writeStream.close();
        } catch (IOException e) {
            e.printStackTrace();
    }
}

方法二:

//使用的是android.content,
try {
    /*设置成MODE_PRIVATE,其他程序不能访问,这种是默认的构造方式,可以去设置成其他的方式来使其可读写。
    */
    fileOutputStream = openFileOutput(FILE2,Context.MODE_PRIVATE);
    //写入数据
    fileOutputStream.write("hehe".getBytes());
} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}
finally{
    try {
        if (fileOutputStream != null)
            fileOutputStream.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

   存储缓存文件 
   如果想要缓存一些文件,你可以使用createTempFile()去创建文件,应该使用getCacheDir()去打开文件。 

   小技巧:正常情况下,上述的文件无法看到,要想看到就要使用adb了,模拟器:adb devices查看设备

                ~$ adb devices 
                List of devices attached 
                emulator-5554    device

                然后进入超级用户中,就可以做相应命令来查看了

                ~$ adb -s emulator-5554 shell 
                  # 

   注意:应用程序的内部存储目录是有应用程序的的包名制定的,默认的情况下,其他程序不能够访问内部 
            存储的路径,除非你显示的使用可读或者可写的模式。

   参考资料:

                  http://developer.android.com/guide/topics/data/data-storage.html

                        http://developer.android.com/training/basics/data-storage/files.html