1

私はAndroid開発に本当に慣れていません。最初のプロジェクトは、ディスプレイとロジック部分を備えたシンプルなゲームでした。ゲームに保存機能を追加したいのですが、実装に問題があります。

ObjectOutputStreamを使用して、この方法で実行したいと思います(重要な部分だけが含まれています)

String filename = "res/raw/testfile.txt";
try
{
    FileOutputStream fileout = new FileOutputStream(filename);
    ObjectOutputStream out = new ObjectOutputStream(fileout);
    out.writeObject(...logic objects...);
} 
catch (Exception ex)
{
    //show the error message
}

しかし、「そのようなファイルはありません...」というエラーメッセージが常に表示されます。rawディレクトリに「testfile.txt」を作成しても、同じエラーが表示されます。

私を助けてください、私は何が間違っているのですか?

4

2 に答える 2

3

リソース ディレクトリに書き込むことはできません。おそらく、代わりに内部ストレージに書き込む必要があります。データ ストレージに関するドキュメントが役立つはずです。

于 2012-01-05T18:30:01.900 に答える
2

ファイル名で File オブジェクトを作成し、ファイルが存在するかどうかを確認します。そうでない場合は、ファイルを作成します。存在する場合は、上書きするか、上書きするかどうかをユーザーに確認することができます。次に、ファイル名の代わりに File オブジェクトを FileOutputStream に渡します。このようなもの:

String filename = "res/raw/testfile.txt";
try
{
    File file = new File(filename);
    if (!file.exists()) {
        if (!file.createNewFile()) {
           throw new IOException("Unable to create file");
        }
    // else { //prompt user to confirm overwrite }

    FileOutputStream fileout = new FileOutputStream(file);
    ObjectOutputStream out = new ObjectOutputStream(fileout);
    out.writeObject(...logic objects...);
} 
catch (Exception ex)
{
    //show the error message
}

また、リソースのリークを防ぐために、必ず出力ストリームを閉じてください。

楽しみ!

于 2012-01-05T19:33:29.383 に答える