参考问题
Can anyone explain the File() parameters used to download file in android?
我可以在不创建虚拟SD卡的情况下执行此操作。有没有办法将文件保存在内存中的手机内存中?如果可以不使用虚拟SD卡,那么如何?
答案 0 :(得分:1)
你的问题有点不清楚你想要使用哪个,所以这两个都是。
像pbaird说的那样,你可以轻松地将文件保存到手机的内部存储中Context.openFileOutput()
。例如:
// Create file on internal storage and open it for writing
FileOutputStream fileOut;
try {
fileOut = openFileOutput(userId +".ics", Context.MODE_PRIVATE);
} catch (IOException e) {
// Error handling
}
// Write to output stream as usual
// ...
这将在手机的内部存储上创建一个新文件,路径如下:
/data/data/com.example.yourpackagename/files/123456.ics
。
只有您的应用程序才能读取此文件;其他人将无法读取此文件,就像它们在SD卡上一样。
如果要将文件保存到SD卡,则需要以下内容:
if (Environment.getExternalStorageState() != Environment.MEDIA_MOUNTED) {
// SD card is not available
return;
}
File root = Environment.getExternalStorageDirectory() +"/myapp/";
File newFile = new File(root, userId +".ics");
FileOutputStream fileOut = new FileOutputStream(newFile);
// Write to output stream as usual
// ...
正如您所看到的,您不能依赖SD卡存在并且可以在任何给定时间点写入。这可能有以下几个原因:
答案 1 :(得分:0)
如果您执行Context.openFileOutput()并且只给它一个没有路径的文件名“myfile.txt”,它应该在应用程序的数据目录中创建文件,而不是SD卡。