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: p> Comment puis-je accéder à un dossier? p> p>
5 Réponses :
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();
Merci pour l'exemple. Comment voudrais-je écrire ces json au fichier?
Comment enregistrer votre JSON dans un fichier sur le stockage interne: Comment le lire: p>
OpenFileIngut n'accepte qu'un seul paramètre qui doit être une chaîne.
Et quel est le contexte?
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(); } }
Peut-être dans une version plus récente, mais Tojson accepte l'écrivain qui écrit directement au fichier.
ex.: p>
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); }
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 code> 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.