9
votes

Lire et écrire des données avec GSON

Je suis en difficulté pour trouver un bon exemple sur la façon de lire et d'écrire des données dans mon application Android à l'aide de GSON. Quelqu'un pourrait-il s'il vous plaît me montrer ou me signaler à un bon exemple? J'utilise cela pour la persistance des données entre les activités.

Mon professeur a donné cet exemple à l'écriture: xxx

Comment puis-je accéder à un dossier?


5 commentaires

Cela ne semble pas être un problème avec GSON, semble que vous recherchez des informations sur la création d'un fichier sur un appareil Android ...


@Raystojonic je n'ai jamais dit que c'était un problème. Je ne trouve aucune bonne information sur la façon de l'utiliser.


Peut-être que cela peut vous aider: développeur.android.com/training/basics/ stockage de données / fichiers.htm l


@trapo Il n'y a aucune mention de gson dans ce document


Oui, mais une fois que vous avez votre chaîne de "S ', il suffit de l'enregistrer car vous sauveriez la chaîne" Hello World "présente dans l'exemple.


5 Réponses :


10
votes

EXEMPLE SIMPLE GSON:

        File myFile = new File("/sdcard/myjsonstuff.txt");
        FileInputStream fIn = new FileInputStream(myFile);
        BufferedReader myReader = new BufferedReader(new InputStreamReader(fIn));
        String aDataRow = "";
        String aBuffer = ""; //Holds the text
        while ((aDataRow = myReader.readLine()) != null) 
        {
            aBuffer += aDataRow ;
        }
        myReader.close();


1 commentaires

Merci pour l'exemple. Comment voudrais-je écrire ces json au fichier?



19
votes

Comment enregistrer votre JSON dans un fichier sur le stockage interne: xxx

Comment le lire: xxx


2 commentaires

OpenFileIngut n'accepte qu'un seul paramètre qui doit être une chaîne.


Et quel est le contexte?



0
votes

Enregistrez votre classe dans SharedPrefrences en utilisant

public class SharedPref {

    public static String read(String valueKey, String valueDefault) {
        SharedPreferences prefs = PreferenceManager
                .getDefaultSharedPreferences(App.context);
        return prefs.getString(valueKey, valueDefault);
    }

    public static void save(String valueKey, String value) {
        SharedPreferences prefs = PreferenceManager
                .getDefaultSharedPreferences(App.context);
        SharedPreferences.Editor edit = prefs.edit();
        edit.putString(valueKey, value);
        edit.commit();
    }
}


0 commentaires

1
votes

Peut-être dans une version plus récente, mais Tojson accepte l'écrivain qui écrit directement au fichier.

ex.: xxx


0 commentaires

0
votes

Vous pouvez également faire cela entièrement avec des flux et éviter un objet intermédiaire:

Vector v;

// This should be reused, so private static final
Gson gson = new GsonBuilder().create();

// Read from file:
try (InputStream fileIn = context.openFileInput("myfile.txt", Context.MODE_PRIVATE);
     BufferedInputStream bufferedIn = new BufferedInputStream(fileIn, 65536);
     Reader reader = new InputStreamReader(bufferedIn, StandardCharsets.UTF_8)) {
    gson.fromJson(reader, Vector.class);
}

v = new Vector(10.0f, 20.0f);

// Write to file
try (OutputStream fileOut = context.openFileOutput(filename, Context.MODE_PRIVATE);
     OutputStream bufferedOut = new BufferedOutputStream(fileOut, 65536);
     Writer writer = new OutputStreamWriter(bufferedOut)) {
    gson.toJson(v, writer);
}


0 commentaires