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();
}