sauvegarde et chargement d'un tableau d'objets (class)

sauvegarde et chargement d'un tableau d'objets (class) - Java - Programmation

Marsh Posté le 25-04-2008 à 08:38:19    

bonjour à tous,
j'aimerai savoir s'il était possible de sauvegarder des objets dans un fichier et de recharger ces mêmes objets lors d'une réouverture ultérieure du programme ?
 
J'ai trouvé certains exemples sur le net mais rien de très explicatifs.
 
Tous les objets sont répertoriés dans un tableau comprenant au max 32 objets mais certains de ceux-ci sont "null" s'ils ne sont pas "créés" par l'utilisateur.
 
Ma question est donc de connaitre la procédure (si procédure il y a) pour sauvegarder et recharger ce tableau d'objets ?
 
Merci de votre aide.
 
sevent

Reply

Marsh Posté le 25-04-2008 à 08:38:19   

Reply

Marsh Posté le 25-04-2008 à 08:42:21    

Il y a plein de techniques, la plus simple dans ton cas est la sérialisation:
http://java.sun.com/developer/technicalArticles/Programming/serialization/


---------------
Light is right
Reply

Marsh Posté le 25-04-2008 à 11:53:37    

c'est normal que ton lien me renvoie sur un site louche ?

Reply

Marsh Posté le 25-04-2008 à 12:10:33    

sevent a écrit :

c'est normal que ton lien me renvoie sur un site louche ?


Il s'est planté comme une grosse buse dans son URL :o
 
http://java.sun.com/developer/tech [...] alization/


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 25-04-2008 à 14:13:47    

J'avais pas encore pris mon café  :o


---------------
Light is right
Reply

Marsh Posté le 25-04-2008 à 14:32:18    

Ok merci bien, je vais lire tout ça et je reviendrai vous voir si ça ne marche toujours pas.

Reply

Marsh Posté le 25-04-2008 à 15:55:54    

Bon il se trouve que il y a effectivement pas mal d'info sur ce lien, cependant, rien concernant mon pb.
En fait je veut sauvegarder un des attributs de ma classe, un tableau qui contient au max 32 objets de type JPanel.
Je veux que tout le tableau d'objets soit sauvegarder dans un fichier puis réouvrable lors du lancement d'une nouvelle application. Le tableau d'objets serait rechargé dans l'attribut correspondant et je veux au final afficher ces objets (rappelez vous que ces objets dérivent de JPanel) dans un JTabbedPane de mon appli.
 
Je ne sais pas si j'ai été assez claire pour vous sinon je reformule.  :)

Reply

Marsh Posté le 25-04-2008 à 16:20:29    

Est-ce que tu veux sauvegarder les JPanels ou bien plutot les données qui y sont affichés ?
Parce que sauvegarder un JPanel je ne voit pas trop l'interêt, d'autant plus que ca doit être un peu compliqué... Pas vraiment possible d'utiliser la sérialisation (tu vas tomber sur un paquet de classe non sérialisable), énorme paquets de données dont tu n'auras que faire, etc...
Si c'est vraiment ce que tu veux faire, essaye peut être de sauvegarder en XML en utilisant une librairie qui te fait cela facilement (XStream, Castor ou autre).


---------------
Light is right
Reply

Marsh Posté le 25-04-2008 à 16:25:52    

Si tu veux, mon tableau est composé de 32 objets max, jusque là.... ok
chacun de ces objets (dérivés de JPanel) est composé de 15 attributs.... bon...
et chacun de ces attributs est lui-même un JPanel avec des boutons, des JTextField et d'autre trucs.
Voilà pour le genre de chose que j'aimerai conserver.... oui je me doute que ça doit être laborieux mais bon...
si vraiment c'est la misère à faire alors je changerai de methode et ne sauvegarderai que l'essentiel des données.

Reply

Marsh Posté le 28-04-2008 à 17:45:31    

Une question plus simple pour la sauvegarde:
 
peut-on sauvegarder uniquement un JPanel (une classe) avec tout ce qu'il contient dedans ? et si "oui" quelle est la procédure à appliquer ?

Reply

Marsh Posté le 28-04-2008 à 17:45:31   

Reply

Marsh Posté le 28-04-2008 à 22:41:12    

Ce que je t'ai répondu juste avant...
Essaye par sérialisation (passeras pas à mon avis, un JPanel n'est pas prévu pour ca), sinon un sauvegarde xml par une librairie qui te masque toute la technique comme XStream ou Castor (3 lignes de code)


---------------
Light is right
Reply

Marsh Posté le 29-04-2008 à 11:13:40    

Ce qu'il faut que tu sauvegardes, ce sont les données représentées dans ces objets et non les objets en eux même.
 
Pour ça tu devrait :
 
1) parcourir tous les objets (Tableau, panels, boutons, text, ...)
2) pour chaque objet, récupérer les infos utiles
3) écrire ces infos dans un fichier dans un format que tu pourras parser (xml est très bien pour ça)
 
Ensuite pour reconstruire tu "n'auras qu'à" relire le fichier et tout reconstruire à partir des infos que tu auras sauvegardé...

Reply

Marsh Posté le 29-04-2008 à 13:33:58    

Bonjour à tous,
 
j'ai fini par sauvegarder chaque champs qui m'intéressait dans un fichier .ser avec les fameux "writeObject" et "write".
champs que je restaurait lors de la "re-création" de mes objets.
 
Je verrai en fonction de mon avancement cette fameuse technique en utilisant XML.
 
Merci à tous en tout cas pour vos lumières  ;)  je reviendrai vous voir si j'ai d'autres soucis héhéhé


Message édité par sevent le 29-04-2008 à 15:58:57
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed