0

まず、SDカードに書き込もうとしていません。アプリの使用間で保持されるファイルにいくつかの情報を書き込みたいです。基本的には、特定のユーザーのお気に入りを保持するためのファイルです。コードは次のようになります。

try {
            File file = new File("favorites.txt");

            if (file.exists()) {
                Log.d(TAG, "File does exist.");
                fis = new FileInputStream(file);
                br = new BufferedReader(new InputStreamReader(fis));
            }
            else {
                Log.d(TAG, "File does not exist.");
                return favDests;
            }

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

このコードを実行すると、常に「ファイルが存在しません」というメッセージが表示されます。DDMS ログのメッセージ。

また、次のコードを試してみましたが、役に立ちませんでした。

try {
            File file = new File(GoLincoln.FAV_DEST_FILE);

            fis = new FileInputStream(file);
            br = new BufferedReader(new InputStreamReader(fis));

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

FileNotFoundException が発生するのは、コードのこの 2 番目の部分です。

私は Android でのファイルの書き込みと読み取りに関する複数のチュートリアルを読みましたが、それらをかなり厳密に従っていると信じているため、このコードが正常に機能しない理由がわかりません。どんな助けにも感謝します!

4

2 に答える 2

2

Fileクラスを直接使用しないでください。アプリケーションに固有のキャッシュ ディレクトリを取得するために使用Activity.getCacheDir()します。次に、 を使用new File(cachedir, "filename.tmp")してファイルを作成します。

于 2010-12-12T21:44:19.797 に答える
1

環境設定と SQLLite の両方を使用すると、独自のファイルを管理しなくても永続的なデータを保持できます。

共有設定を使用するには、コンテキストから取得してから、次のように値を編集します

mySharedPreferences = context.getSharedPreferences("DatabaseNameWhateverYouWant", 0);
mySharedPreferences.getEditor().putString("MyPreferenceName", "Value").commit();

プリファレンスを取得するには

mySharedPreferences.getString("MyPreferenceName", "DefaultValue");

これは、基本的な設定を行う最も簡単な方法であり、ファイルを作成するよりもはるかに簡単です。より多くの文字列がサポートされており、ほとんどの基本的なデータ型は Preferences クラスに追加できます。

于 2010-12-12T22:27:26.607 に答える