一、获取外部存储目录
在Android上,外部存储是指可移动存储介质,例如SD卡。我们可以通过使用getExternalFilesDir()方法获取外部存储路径。这个方法允许我们将数据写入到外部存储设备上。
首先,在Manifest文件中添加以下权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
然后在代码中,使用以下代码获取外部存储路径:
File externalFileDir = getExternalFilesDir(null);
getExternalFilesDir()方法有一个参数是存储目录的类型,例如图片,音频等等。如果你想要保存图片,可以使用以下代码获取存储目录的路径:
File externalImageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
在这个存储目录下,我们就可以创建文件并写入数据了。
二、创建文件并写入数据
下面的例子展示了如何创建一个文件并向其写入数据:
File file = new File(externalFileDir, "example.txt");
String data = "Hello, world!";
try {
FileOutputStream outputStream = new FileOutputStream(file);
outputStream.write(data.getBytes());
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
我们首先创建了一个File对象,指定了文件的名称。然后,我们使用FileOutputStream类来写入数据。最后,我们关闭输出流。
三、读取文件
下面的例子展示了如何读取我们写入的数据:
File file = new File(externalFileDir, "example.txt");
String data = "";
try {
FileInputStream inputStream = new FileInputStream(file);
int content;
while ((content = inputStream.read()) != -1) {
data += (char) content;
}
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
Log.d("TAG", "Data: " + data);
我们首先创建了一个File对象,指向我们之前创建的文件。然后,我们使用FileInputStream类来从文件中读取数据。
在while循环中,我们读取文件的内容并将其存储在data变量中。最后,我们在Logcat窗口中打印读取到的数据。
四、总结
本文中介绍了如何在Android上使用getExternalFilesDir()方法获取外部存储路径,并如何将数据写入到外部存储设备中。通过这些示例,你可以了解如何创建和读取文件。
完整的示例代码如下:
File externalFileDir = getExternalFilesDir(null);
// File externalImageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
File file = new File(externalFileDir, "example.txt");
String data = "Hello, world!";
try {
FileOutputStream outputStream = new FileOutputStream(file);
outputStream.write(data.getBytes());
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
file = new File(externalFileDir, "example.txt");
data = "";
try {
FileInputStream inputStream = new FileInputStream(file);
int content;
while ((content = inputStream.read()) != -1) {
data += (char) content;
}
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
Log.d("TAG", "Data: " + data);