Enregistrer tableau.
drspinoza
Messages postés
55
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je me demandé comment faire pour enregistrer des tableaux que l'on a créer dans un main.
Puis ensuite les réutiliser lors de la relance du programme.
Je me demandé comment faire pour enregistrer des tableaux que l'on a créer dans un main.
Puis ensuite les réutiliser lors de la relance du programme.
1 réponse
-
Bonjour,
Je ne connais pas Java, donc je ne te donnerai pas de code en exemple, mais il faut enregistrer les données quelque part, et au démarrage regarder si un enregistrement existe et le charger le cas échéant.
Pour l'enregistrement tu as beaucoup de solutions, en voici quelques unes:- fichiers textes "en ligne": taboulés, csv, ....
- fichiers xml ou json.
- base de données.
- tableur (excel, .....)
---
personnellement j'utilise
http://www.jdom.org/ pour le xml, qui reste le plus simple quand on débute,
même si le jdbc pour la base de données est pas compliqué :) -
Bonjour,
Il y a aussi les fichiers binaire.
En Java toutes les classes qui implémentent l'interface Serializable peuvent enregistrer leurs objets tels qu'ils sont en mémoire directement dans un fichier.
Dans tous les cas tu devrais regarder les OutputStram et InputStream, en particulier les FileOutputStream/FileInputStream et pour la sérialisation ObjectOutputStream/ObjectInputStream.
Exemple de (dé)sérialisation :
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.Arrays; public class Test { public static void main(String[] args) { File backup = new File("backup.ser"); String[] tabDefault = { "a", "b", "c" }; String[] tab = loadBackup(backup, tabDefault); // [a, b, c] la 1ère fois, [1, 2, 3] ensuite System.out.println(Arrays.toString(tab)); tab = new String[] { "1", "2", "3" }; saveBackup(backup, tab); } private static void saveBackup(File backup, Object obj) { try { ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(backup)); out.writeObject(obj); out.close(); } catch (IOException e) { e.printStackTrace(); } } @SuppressWarnings("unchecked") private static <E> E loadBackup(File backup, E defaultObj) { try { ObjectInputStream in = new ObjectInputStream(new FileInputStream(backup)); E obj = (E) in.readObject(); in.close(); return obj; } catch (IOException | ClassNotFoundException e) { System.err.println(e); return defaultObj; } } }
Remarque : le fichier "backup.ser" étant au format binaire, son contenu n'est pas directement éditable, il est fait par Java, pour Java.
Voici son contenu pour mon exemple (on peut deviner une partie des valeurs) Si le contenu d'un fichier devient trop important on peut le zipper, voir les classes ZipOutputStream/ZipInputStream.
-
-
-