c语言编程笔录

首页 >   > 笔记大全

笔记大全

Android内部存储与外部存储实例代码分析

更新时间:2023-11-10

前言:

Android系统提供了两种存储方式,即内部存储和外部存储。内部存储是指应用程序在设备内部的私有存储空间,通常用于存储应用的私有数据,这些数据只能被应用程序本身访问。而外部存储则是指设备上可移动的存储介质,如SD卡,用于存储非敏感的公共数据,可以被多个应用程序共享访问。本文将通过示例代码分析Android内部存储和外部存储的使用方式,以及它们的区别和特点。

内部存储的实例代码:

内部存储使用的是应用程序的私有目录,在这个目录下可以创建文件和子目录,并且只有当前应用程序有权访问这些文件。下面是一个使用内部存储的示例代码:
// 内部存储:写入文件
String filename = "myfile.txt";
String content = "Hello world!";
FileOutputStream fos = null;
try {
    fos = openFileOutput(filename, Context.MODE_PRIVATE);
    fos.write(content.getBytes());
    fos.close();
} catch (Exception e) {
    e.printStackTrace();
}

// 内部存储:读取文件内容
try {
    FileInputStream fis = openFileInput(filename);
    BufferedReader br = new BufferedReader(new InputStreamReader(fis));
    StringBuilder sb = new StringBuilder();
    String line;
    while ((line = br.readLine()) != null) {
        sb.append(line);
    }
    fis.close();
    String fileContent = sb.toString();
} catch (Exception e) {
    e.printStackTrace();
}
上述代码首先通过openFileOutput()方法获取一个FileOutputStream对象,然后使用该对象将内容写入到指定的文件中。而读取文件内容的过程则是通过openFileInput()方法获取一个FileInputStream对象,然后使用该对象读取文件内容并输出。

外部存储的实例代码:

外部存储通常用于存储大文件或需要被多个应用程序共享的文件。下面是一个使用外部存储的示例代码:
// 外部存储:检查是否可用
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
    // 外部存储可用
    // 获取外部存储的根目录
    File externalDir = Environment.getExternalStorageDirectory();
    // 创建文件
    File file = new File(externalDir, "myfile.txt");
    try {
        FileOutputStream fos = new FileOutputStream(file);
        fos.write("Hello world!".getBytes());
        fos.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
} else {
    // 外部存储不可用
    // 处理存储不可用的情况
}
上述代码首先通过Environment.getExternalStorageState()方法检查外部存储是否可用,然后使用Environment.getExternalStorageDirectory()方法获取外部存储的根目录。接着创建一个文件对象,指定外部存储根目录下的文件名,并通过FileOutputStream对象将内容写入到文件中。

总结:

本文通过示例代码分析了Android内部存储和外部存储的使用方式。内部存储是应用程序的私有存储空间,可以通过openFileInput()和openFileOutput()方法进行读写操作,文件只能被应用程序本身访问。而外部存储是可移动的存储介质,可以被多个应用程序共享访问。外部存储的使用需要先检查其是否可用,然后通过Environment.getExternalStorageDirectory()方法获取外部存储的根目录,并通过FileOutputStream对象进行读写操作。使用内部存储和外部存储都需要在AndroidManifest.xml文件中声明相关权限。内部存储相对安全,但容量有限;外部存储容量较大,但需要注意权限和可用性的检查。根据实际需求,选择合适的存储方式来存储应用程序的数据。