1

我有一台没有存储卡的设备,我想保存文件。我试过了:

filePath = Environment.getDataDirectory().toString();

/data/.... EACCES(权限被拒绝)

filePath = Environment.getDownloadCacheDirectory().toString();

/cache/.... EACCES(权限被拒绝)

filePath = Environment.getRootDirectory().toString();

/system/.... EROFS(只读文件系统)

还有其他方法吗??(对不起我的英语:P)

4

3 回答 3

2

尝试将文件写入内部存储,在您的应用程序本地空间中,文件将被写入类似的地方,下面的代码可能会在这方面对您有所帮助

            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); }
于 2013-01-27T19:38:18.453 回答
0

你可以试试这个。我正在使用它来存储下载图像

String cacheDir= 
context.getCacheDir();
File file= new File(cacheDir,
"test.dat");
FileOutputStream out = new
FileOutputStream(file);
于 2013-01-27T19:56:58.473 回答
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;
}

阅读本文以将文件保存在内部和外部存储器中。

于 2013-01-27T19:40:33.407 回答