我有一个没有存储卡的设备,我想保存文件。我试过了:
filePath = Environment.getDataDirectory().toString();
/ data / .... EACCES(权限被拒绝)
filePath = Environment.getDownloadCacheDirectory().toString();
/ cache / .... EACCES(权限被拒绝)
和
filePath = Environment.getRootDirectory().toString();
/ system / .... EROFS(只读文件系统)
还有其他方法吗? (对不起我的英文:P)
答案 0 :(得分:1)
尝试将文件写入内部存储,在你的应用本地空间中,文件会写在某处,下面的代码可能会对你有所帮助
FileOutputStream fOut = null;
OutputStreamWriter osw = null;
try{
fOut = openFileOutput(FILE_NAME, Context.MODE_PRIVATE);
osw = new OutputStreamWriter(fOut);
osw.write("yourString data");
osw.close();
fOut.close();
}catch(Exception e){
e.printStackTrace(System.err); }
答案 1 :(得分:0)
将文件保存在内部存储器中,但无法看到保存在内部存储器中的文件。
使用此代码将文件保存在内部存储器中。
public boolean saveImageToInternalStorage(Bitmap image,Context context)
{
try {
FileOutputStream fos = context.openFileOutput("photo.jpg", Context.MODE_WORLD_READABLE);
image.compress(Bitmap.CompressFormat.JPEG, 100, fos);
// 100 means no compression, the lower you go, the stronger the compression
fos.close();
return true;
}
catch (Exception e) {
Log.e("saveToInternalStorage()", e.getMessage());
}
return false;
}
阅读此article以将文件保存在内部和外部存储器中。
答案 2 :(得分:0)
你可以试试这个。我用它来存储下载图像
String cacheDir=
context.getCacheDir();
File file= new File(cacheDir,
"test.dat");
FileOutputStream out = new
FileOutputStream(file);