Android储存方式

Android提供了多种储存方式,用于保存应用程序的数据和用户文件。本文将介绍Android的主要储存方式,并提供代码示例。

1. 内部储存

内部储存是每个应用程序私有的储存空间,其他应用程序无法访问。可以使用内部储存保存应用程序的数据和文件。

1.1. 保存数据

下面的代码示例展示了如何在内部储存中保存数据。

String fileName = "data.txt";
String content = "Hello, world!";
try {
    FileOutputStream fos = openFileOutput(fileName, Context.MODE_PRIVATE);
    fos.write(content.getBytes());
    fos.close();
} catch (IOException e) {
    e.printStackTrace();
}

1.2. 读取数据

下面的代码示例展示了如何从内部储存中读取数据。

String fileName = "data.txt";
try {
    FileInputStream fis = openFileInput(fileName);
    InputStreamReader isr = new InputStreamReader(fis);
    BufferedReader br = new BufferedReader(isr);
    StringBuilder sb = new StringBuilder();
    String line;
    while ((line = br.readLine()) != null) {
        sb.append(line);
    }
    fis.close();
    String content = sb.toString();
} catch (IOException e) {
    e.printStackTrace();
}

2. 外部储存

外部储存是SD卡或其他外部存储设备上的储存空间。可以使用外部储存保存应用程序的数据和文件。

2.1. 检查外部储存状态

在使用外部储存之前,需要检查外部储存的状态。

String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
    // 外部储存可用
} else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
    // 外部储存只读
} else {
    // 外部储存不可用
}

2.2. 保存文件到外部储存

下面的代码示例展示了如何将文件保存到外部储存。

String fileName = "data.txt";
File file = new File(getExternalFilesDir(null), fileName);
try {
    FileOutputStream fos = new FileOutputStream(file);
    fos.write(content.getBytes());
    fos.close();
} catch (IOException e) {
    e.printStackTrace();
}

2.3. 从外部储存读取文件

下面的代码示例展示了如何从外部储存读取文件。

String fileName = "data.txt";
File file = new File(getExternalFilesDir(null), fileName);
try {
    FileInputStream fis = new FileInputStream(file);
    InputStreamReader isr = new InputStreamReader(fis);
    BufferedReader br = new BufferedReader(isr);
    StringBuilder sb = new StringBuilder();
    String line;
    while ((line = br.readLine()) != null) {
        sb.append(line);
    }
    fis.close();
    String content = sb.toString();
} catch (IOException e) {
    e.printStackTrace();
}

3. 共享储存

共享储存是可由多个应用程序共享的储存空间。可以使用共享储存保存应用程序的数据和文件,并允许其他应用程序访问。

3.1. 获取共享储存目录

下面的代码示例展示了如何获取共享储存目录。

File file = new File(Environment.getExternalStoragePublicDirectory(
        Environment.DIRECTORY_DOCUMENTS), fileName);

3.2. 保存文件到共享储存

下面的代码示例展示了如何将文件保存到共享储存。

String fileName = "data.txt";
File file = new File(Environment.getExternalStoragePublicDirectory(
        Environment.DIRECTORY_DOCUMENTS), fileName);
try {
    FileOutputStream fos = new FileOutputStream(file);
    fos.write(content.getBytes());
    fos.close();
} catch (IOException e) {
    e.printStackTrace();
}

3.3. 从共享储存读取文件

下面的代码示例展示了如何从共享储存读取文件。

String fileName = "data.txt";
File file = new File(Environment.getExternalStoragePublicDirectory(
        Environment.DIRECTORY_DOCUMENTS), fileName);
try {
    FileInputStream fis = new FileInputStream(file);
    InputStreamReader isr = new InputStreamReader(fis);
    BufferedReader br = new BufferedReader(isr);
    StringBuilder sb = new StringBuilder();
    String line;
    while ((line = br.readLine()) != null) {
        sb.append(line);
    }
    fis.close();
    String content = sb.toString();
} catch (IOException e) {
    e.printStackTrace();
}