0

カメラで撮った写真を次のように保存します。

FileOutputStream out = new FileOutputStream("img_example");
bmp.compress(Bitmap.CompressFormat.PNG, 90, out);

(同じアクティビティ/ファイルの)onCreate()メソッドで、ファイルが存在するかどうかを確認しますが、次のテストに含まれないため、何か間違ったことをしている必要があります。

file = getApplicationContext().getFileStreamPath("img_example");
if(file.exists()) 
{
    //doesn't go in here
}

それは私が与えたパスやコンテキストと関係があるのではないかと思います。


背景情報:私は実際に上記のコードの3つの異なるインスタンスを持っています。file.exists()テスト内で、[画像を撮る]ボタンの横にチェックマークを表示します。最終的には、別のアクティビティで画像を取得したいのですが、今のところ、画像が存在するかどうかを確認したいだけです。

4

2 に答える 2

2

最も明白な理由は「そこにないから」です。

あなたのコードは「現在のディレクトリ」にファイルを作成し、アプリケーションコンテキストでファイルを探していることに注意してください。どうやら彼らは同じ場所ではありません。なぜだけではないのですか...

FileOutputStream out = new FileOutputStream(
        getApplicationContext().getFileStreamPath("img_example"));
于 2011-07-19T11:01:08.440 に答える
0

それがアンドロイドのドキュメントで言うように:

getFileStreamPath(String name)

openFileOutput(String、int)で作成されたファイルが保存されているファイルシステムの絶対パスを返します。

openFileOutput()メソッドを使用してファイルを書き込んでみませんか?

于 2011-07-19T11:00:10.780 に答える