7

ここでそれを行う方法が完全に説明されていますが、唯一の問題は次のとおりです。彼は機能を知りませんopenFileOutput()

private void saveSettingsFile() {
          String FILENAME = "settings";
          String string = "hello world!";

          FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE); //openFileOutput underlined red
          try {
            fos.write(string.getBytes());
            fos.close();
          } catch (IOException e) {
            Log.e("Controller", e.getMessage() + e.getLocalizedMessage() + e.getCause());
          }
}

それらは私がインポートした関連パッケージです:

import java.io.FileOutputStream;
import java.io.IOException;
import android.content.Context;
4

4 に答える 4

2

dev.android.com の例から FileOutputStrem を使用するこの例を見てください。それを正しく使用する方法についてのアイデアを提供する必要があります。

于 2010-09-02T14:59:36.593 に答える
1

このメソッドが宣言されているクラスは、「静的」として定義されます。それがエラーを投げている理由です。クラス定義とビンゴから静的を削除します...

于 2012-03-16T14:14:18.247 に答える
0

「try catch」ブロックを追加して、これの間に配置するだけです。

このような:

    private void saveSettingsFile(String FILENAME, String data) {

    FileOutputStream fos;
    try {
        fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
        fos.write(data.getBytes());
        fos.close();
    } catch (FileNotFoundException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    } // openFileOutput underlined red
    catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

線の下に赤い線がある場合.. まず、線が完全な文の下にあるか、文の右側のみ (等号の後) にあるかを確認します。

ライン全体をカバーする場合は、いくつかのバグを修正する必要があります..

または、センテンスの右側のみの下にある場合...それから、いくつかの例外処理が必要であるに違いありません。

生成される可能性のある例外の種類がわからない場合...
心配しないで、すべてのコードを try ブロック ( try{ } ) に記述してから、catch を追加して、catch 内に Exception オブジェクトを渡します。これで問題ありません。 ..

このような :

  try
  {
    ...........your code
    ......
  } 
   catch(Exception e)
  {
   e.printstacktrace();

  }

今はみんな元気です。

ありがとうございました

于 2013-08-02T12:07:23.720 に答える
0

openFileOutput は Context オブジェクトのメソッドです。最後にストリームを閉じる句を追加することを忘れないでください。ベローは例です(AndroidのせいでJava 6のために少し不器用です)。

String data = "Hello";
FileOutputStream fos = null;
try {
    fos = mContext.openFileOutput(FILENAME, Context.MODE_PRIVATE);
    fos.write(data.getBytes(Charset.defaultCharset()));
} catch (IOException e) {
    e.printStackTrace();
} finally {
    if (fos != null) {
        try {
            fos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

アクティビティ内にいる場合は、mContext 変数を上記のどこかで定義し、mContext = getApplicationContext() のように初期化する必要があります。

于 2016-08-22T16:48:02.347 に答える