2012-01-05 14 views
1

私はAndroid開発には本当に新しく、最初のプロジェクトはディスプレイとロジック部分を持つシンプルなゲームでした。私はゲームに保存機能を追加したいと思いますが、実装に問題があります。AndroidファイルとObjectOutputStreamからリソースファイル

私は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 
} 

と、このようにそれを行うにしたいと思います。しかし、私は常にエラーメッセージウィッヒがあること、言います、「いいえそのようなファイル...」 。たとえ私が生のディレクトリに "testfile.txt"を作成しても、同じエラーが出ます。

どうか私は間違っているのですか?

+0

「このようなファイルはありません...」と表示されている場合は、パスが正しくない可能性があります。 –

+0

[This(http://stackoverflow.com/questions/1239026/how-to-create-a-file-in-android)がお手伝いします。 :-) – micha

答えて

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 
} 

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

お楽しみください!

3

リソースディレクトリに書き込むことはできません。代わりに、おそらく内部ストレージに書き込むべきです。 doc on data storageが役に立ちます。