如何在没有SD卡的情况下保存文件?

时间:2013-01-27 19:27:05

标签: android file save

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

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

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

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

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

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

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

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

3 个答案:

答案 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);