Une classe toute bête pour sauvegarder des objets

Soyez le premier à donner votre avis sur cette source.

Vue 8 151 fois - Téléchargée 380 fois

Description

bon c'est peut être un peu bébête mais si ça peut servir à qqun ou si un expert peut me faire une critique constructive de mes bidouillages ça me fera plaisir.
Cette classe a une mission simple, on lui donne un chemin d'accès et un objet, il faut qu'elle me le sauvegarde. L'objet en question doit impérativement "implements Serializable" comme ils disent dans l'API, sinon ... ça marche pas

Source / Exemple :


import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class FichierObjet
{
	String nomFichier;
	ObjectOutputStream fichierE;
	ObjectInputStream fichierL;
	boolean ohyeah;
	public FichierObjet(String nomFichier)
	{
		this.nomFichier=nomFichier;
	}
	private boolean ouvrirFichierE()
	{
		ohyeah=true;
		try{fichierE=new ObjectOutputStream(new FileOutputStream(nomFichier));}
		catch(Exception e){ohyeah=false;}
		return ohyeah;
	}
	private boolean fermerFichierE()
	{
		ohyeah=true;
		try{fichierE.close();}
		catch(Exception e){ohyeah=false;}
		return ohyeah;
	}
	private boolean ouvrirFichierL()
	{
		ohyeah=true;
		try{fichierL=new ObjectInputStream(new FileInputStream(nomFichier));}
		catch(Exception e){ohyeah=false;}
		return ohyeah;
	}
	private boolean fermerFichierL()
	{
		ohyeah=true;
		try{fichierL.close();}
		catch(Exception e){ohyeah=false;}
		return ohyeah;
	}
	public boolean sauvegarder(Object objet)
	{
		ohyeah=ouvrirFichierE();
		try{fichierE.writeObject(objet);}
		catch(Exception e){ohyeah=false;}
		fermerFichierE();
		return ohyeah;
	}
	public Object charger()
	{
		ohyeah=ouvrirFichierL();
		Object objet=null;
		try{objet=fichierL.readObject();}
		catch(Exception e){ohyeah=false;}
		fermerFichierL();
		return objet;
	}
}

Conclusion :


bon, à vrai je l'ai juste essayée avec un petit String pour voir, je sais pas trop si ça peut supporter les gros objets (genre un airbus quoi).
Je vais peut être me pencher sur une version qui archive plusieurs objets en un seul fichier.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
5
Date d'inscription
mardi 3 mai 2011
Statut
Membre
Dernière intervention
13 juin 2011

stp main et merci
Messages postés
79
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
17 novembre 2004
1
Tiens c'est vrai ça je n'y avait pas songé. Ce truc est bien plus portable qu'une base de registre. Mais en toute honnêteté MasterFangorn, j'ai plus songé à la simplicité d'utilisation qu'à la portabilité de la classe ... Celà dit ça me conforte quand même de savoir que l'idée n'est pas si stupide que ça.
Messages postés
351
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
9 décembre 2004

C'est sur, cela me rend parfois triste aussi de voir comment on peut détruire ce que java nous propose de plus puissant :'(
(Evitons les .bat, registres, .sh,...)

Utilisons les technologies compatibles SVP...
B@ron {EU.BELGIUM}
Messages postés
6
Date d'inscription
samedi 6 mars 2004
Statut
Membre
Dernière intervention
13 août 2004

>> Si tu ne t'y connais pas assez en Base de Registre

L'interêt du langage et de la plateforme JAVA c'est justement d'être multiplateforme ; Linux, Windows, Solaris, PDA, Montre, Telephone portable ... Et je me trompe peut-être, mais je n'ai pas vu de BASE DE REGISTRE ailleurs que sous Windows.

La sérialisation d'un objet est une très bonne chose pour des objets de relative petite taille, genre le score d'un casse brique.

Asrull, bravo pour ta classe.
Messages postés
30
Date d'inscription
vendredi 17 mai 2002
Statut
Membre
Dernière intervention
14 juin 2008

Je suis d'accord avec toi. Si tu ne t'y connais pas assez en Base de Registre, ça serait délicat de s'aventurer là de dans. ce qui pourrai endommager la base de registre de la machine indispensable pour Windows.
Afficher les 28 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.