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 に答える