在 Android 设备中,Internal Storage(内存)和 External Storage(外存)是两个不同的概念。然而,由于名称相似,很容易混淆,特别是在与存储有关的编程中。因此,以下是一些应该知道的关键点:
Internal Storage 是设备自带的不可移除存储,通常用于存储应用程序私有数据。这包括 SharedPreferences、数据库和其他文本文件等。对于用户来说,这个存储是不可见的,无法直接访问。
External Storage 则是用于共享文件的存储。它是可移除的媒体,例如 SD 卡或 USB 存储器。对于用户来说,这个存储是可以在系统文件管理器中直接访问的。
以下是一个简单的代码示例,用于读写 Internal 和 External Storage:
读取 Internal Storage 上的 SharedPreferences:
SharedPreferences preferences = getApplicationContext().getSharedPreferences("my_preferences", Context.MODE_PRIVATE);
String value = preferences.getString("key", "default_value");
写入 Internal Storage 上的文件:
String fileContent = "This is the content of my file";
try {
FileOutputStream fos = openFileOutput("myfile.txt", Context.MODE_PRIVATE);
fos.write(fileContent.getBytes());
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
读取 External Storage 上的文件:
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
File file = new File(Environment.getExternalStorageDirectory(), "my_file.txt");
try {
FileInputStream fis = new FileInputStream(file);
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
String fileContent = new String(buffer);
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
写入 External Storage 上的文件:
String fileContent = "This is the content of my file";
if (Environment.MEDIA_MOUNTED.equals(Environment