0

ファイルを読み込んで保存するための Activity クラス内のコードがあります。それは正常に動作します。このコードは、cFavretClass の内容を保存します。コードをクリーンアップしようとしているので、ファイル i/o を cFavret クラスに移動しました。

コードをコンパイルできません。というエラーが表示されますopenFileOutput is undefined in type cFavrets

このメソッドは Google のアクティビティ クラスで宣言されていると思いますか? これは、すべてのファイル I/O がアクティビティ クラスにある必要があるということですか?

boolean Save()
{
  String FILENAME = "hello_file";

  try {
    FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE );
    fos.write(buffer);
    fos.close();
  }
  // just catch all exceptions and return false
  catch (Throwable t) {
    return false;
  }       
  return true;
}  

boolean Load()
{
  String FILENAME = "hello_file";
  try {
    FileInputStream fos = openFileInput(FILENAME);   
    buffer[0]=0;
    fos.read(buffer);
    fos.close();
  }
  // just catch all exceptions and return false
  catch (Throwable t) {
  // maybe file does not exist, try creating it
    return false;
  }
  return true;
}
4

2 に答える 2

1

これは、すべてのファイルI / Oがアクティビティクラスに含まれている必要があることを意味しますか?

いいえ。ただし、問題のメソッドはコンテキストから呼び出されます。コンテキストをこのコンストラクターcFavretClass(または必要に応じてメソッド自体)に渡すだけです。

Context mContext;
public cFavretClass(Context context) {
  mContext = context;
}

...
  // in your methods:
  mContext.openFileOutput(FILENAME);
于 2012-09-05T20:01:23.850 に答える
0

JRaymond が説明したように、は派生するopenFileOutputメソッドContextですActivityこの方法は、アプリケーション専用のファイルを作成できるという点で特別です。

通常の Java I/O クラスを使用して外部ストレージ (SD カード) に書き込むこともできますが、それらのファイルは誰でも読み取ることができます。

于 2012-09-05T20:05:00.480 に答える