我想在外部存储上存储数据,而Environment.getExternalStorageDirectory()返回/ storage / emulated / 0 / 路径和当我在该目录上存储数据时,它将数据存储在storage / sdcard0 / ...和/ storage / emulated / 0 /
上我需要在外部存储上存储大量图像 我怎么能实现呢?我怎样才能获得外部存储的路径?
答案 0 :(得分:1)
我怎样才能获得外部存储的路径?
/storage/emulated/0/
和storage/sdcard0/
基本相同,这只是一个别名。在像Nexus 5这样的设备和任何其他没有物理SD卡的设备上,"外部存储"表示模拟SD卡的设备内置存储器。 Environment.getExternalStorageDirectory()
会指向此位置,因此您可以使用此方法。
来自docs:
注意:不要被"外部"这个词弄糊涂。这里。这个目录 可以更好地被视为媒体/共享存储。它是一个文件系统 可以容纳相对大量的数据,并且可以共享 所有应用程序(不强制执行权限)。传统上这是 SD卡,但它也可以作为内置存储器实现 与受保护的内部存储区别的设备,可以是 作为文件系统安装在计算机上。
答案 1 :(得分:0)
首先找到外部存储路径
String path = Environment.getExternalStorageDirectory().toString() + directoryName;
然后您可以将所需的任何内容写入文件,如下所示:
File file = new File(path, fileName);
BufferedWriter br;
try {
br = new BufferedWriter(new FileWriter(file));
br.write(content);
br.close();
} catch (IOException e) {
e.printStackTrace();
}