Question

Il est parfaitement décrit comment le faire , le seul problème: il ne marche pas connaître la fonction 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());
          }
}

Ce sont les paquets concernés I Importé:

import java.io.FileOutputStream;
import java.io.IOException;
import android.content.Context;
Était-ce utile?

La solution

Jetez un oeil à cette exemple d'utiliser un FileOutputStrem des exemples sur dev.android.com. Il devrait vous donner une idée de la façon de l'utiliser correctement.

Autres conseils

classe dans lequel cette méthode est déclarée, est définie comme « statique ». thats pourquoi il jette l'erreur. Supprimer statique de la définition de la classe et le bingo ...

Il suffit d'ajouter un bloc « catch try » et les mettre entre cela.

Comme ceci:

    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();
    }
}

Quand il y a la ligne rouge sous la ligne .. Tout d'abord vérifier que la ligne est sous la sentense complète ou seulement côté droit du sentense. (I.e. après le signe égal).

Si elle couvre toute la ligne, il doit corriger quelques bugs ..

Ou si seulement sous le côté droit du sentense ... Ensuite, il doit en veut traiter les choses d'exception.

Si vous ne savez pas quel type d'exception peut générer ...
Ne pas peur, il suffit d'écrire tout le code dans un bloc try (try {}), puis ajoutez une capture et passer un objet d'exception à l'intérieur .. Maintenant attraper son bien ..

Comme ceci:

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

  }

Maintenant, tous sont très bien.

Merci

openFileOutput est une méthode de l'objet de contexte. Et ne pas oublier d'ajouter enfin clause pour fermer le flux. Bellow est un exemple (un maladroit bits à cause de Java 6 en raison d'Android).

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();
        }
    }
}

variables mContext doit être défini quelque part au-dessus et initialisé comme mContext = getApplicationContext () si vous êtes à l'intérieur d'une activité

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top