IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

Les fichiers et les exceptions


Sujet :

Entrée/Sortie Java

  1. #1
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Points : 43
    Points
    43
    Par défaut Les fichiers et les exceptions
    salut tout le monde j'ai lu le chapitre sur les exceptions mais là avec les fichiers je suis totalement perdu, voici une portion code initial qui necessite une gestion d’exception je veux juste une explication pour faire marcher ce code avec l'ajout du support des exception (j'ai essaye mais je n’obtiens que des erreur )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public Manager(String Nom,String Prenom,double Salaire)  {
     
            super(Nom, Prenom, Salaire+1000) ;
     
                out = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(new File("yous.txt"))));
                in = new ObjectInputStream(new BufferedInputStream(new FileInputStream(new File("yous.txt"))));
     
                out.writeObject(new Employe("zaza", "mamababa", 11));
     
                System.out.println(((Employe)in.readObject()).toString());
     
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public static void main(String[] args)  {
            Manager Man = new Manager("coco", "hich", 100) ;
        }

  2. #2
    Membre expérimenté Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 340
    Points : 1 576
    Points
    1 576
    Par défaut
    Bonjour,

    regardez du côté de ce post, il y a un embryon de code avec gestion d'exception: http://www.developpez.net/forums/d10...r/#post5841236

    On peut faire plus complet, mais ce devrait être suffisant pour commencer.

    @ bientôt...

  3. #3
    Membre du Club Avatar de KnowPart
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2010
    Messages : 78
    Points : 68
    Points
    68
    Par défaut
    Ton code contiens une erreur,l'utilisation du mot clé super doit être précéder tout d'abord d'un extends dans ta class fille,le super est utilisé dans ce cas pour faire appel du constructeur de la class mére

  4. #4
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2009
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 130
    Points : 276
    Points
    276
    Par défaut
    Citation Envoyé par KnowPart Voir le message
    Ton code contiens une erreur,l'utilisation du mot clé super doit être précéder tout d'abord d'un extends dans ta class fille,le super est utilisé dans ce cas pour faire appel du constructeur de la class mére
    On ne voit pas la déclaration de la classe donc il est possible que l'héritage soit déjà fait, de plus il semblerait que ce soit les création/écriture de fichier qui soit en cause et non le code "fonctionnel" (après je peux me tromper )

  5. #5
    Membre du Club Avatar de KnowPart
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2010
    Messages : 78
    Points : 68
    Points
    68
    Par défaut
    salut tout le monde j'ai lu le chapitre sur les exceptions mais là avec les fichiers je suis totalement perdu, voici une portion code initial qui necessite une gestion d’exception je veux juste une explication pour faire marcher ce code avec l'ajout du support des exception (j'ai essaye mais je n’obtiens que des erreur )
    J'ai ajouter mon poste pour répondre à faire marcher le code,rtg57 a déja repondu à la parti exception masi je ne pouvais pas voir une erreur et je ne là signale pas

  6. #6
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Points : 43
    Points
    43
    Par défaut
    les amis je vous ai donné juste une portion du code , donc pour les extends les super ça marche , moi je veux juste la gestion des exception avec les fichiers

  7. #7
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Points : 43
    Points
    43
    Par défaut
    il y a ce code qui se compile sans erreurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
                try{
                out = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(new File("yous.txt"))));
                in = new ObjectInputStream(new BufferedInputStream(new FileInputStream(new File("yous.txt"))));
     
                out.writeObject(new Employe("zaza", "mamababa", 11));
     
                System.out.println(((Employe)in.readObject()).toString());
                // n'oublie pas d'ajouter!
                in.close();
                out.close();
                } catch (FileNotFoundException e) {
                       System.out.println("FileNotFoundException");
                } catch (IOException e) {
                       System.out.println("IOException");
                } catch(Exception e){
                       System.out.println("Exception");
                }
    mais il capture une exeption IOException :
    run:
    IOException
    BUILD SUCCESSFUL (total time: 1 second)


    aussi une autre question a quoi sert

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    a attapper toutes formes d'Exception. Il ya toutes sortes de raisons qui font que tu ne dois PAS utiliser ça

    Ensuite, dans ta gestion des exceptions, tes messages sont assez inutiles, il se contentent de dire "y a un truc qui va pas" sans préciser quoi. Affiche toujours le stacktrace de tes exceptions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
                } catch (FileNotFoundException e) {
                       e.printStackTrace();
                } catch (IOException e) {
                       e.printStackTrace();
                }

  9. #9
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 260
    Points : 43
    Points
    43
    Par défaut
    j'ai corrigé le code mais j'ai une nouvelle erreure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
            try {
     
                out = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(new File("C:\\Users\\yous\\Desktop\\yous.txt"))));
                out.writeObject(new Employe("zaza", "zaza", 11));//Manager.java:34
                out.close();
     
                in = new ObjectInputStream(new BufferedInputStream(new FileInputStream(new File("C:\\Users\\yous\\Desktop\\yous.txt"))));
                try {
                System.out.println(((Employe)in.readObject()).toString()); //Manager.java:39
                } catch (ClassNotFoundException e) {
                        e.printStackTrace();
                }
                in.close();
     
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    run:
    java.io.InvalidClassException: tp2.Employe; tp2.Employe; no valid constructor
            at java.io.ObjectStreamClass.checkDeserialize(ObjectStreamClass.java:713)
            at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
            at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
            at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
            at tp2.Manager.<init>(Manager.java:39)
            at tp2.Main.main(Main.java:34)
    Caused by: java.io.InvalidClassException: tp2.Employe; no valid constructor
            at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:471)
            at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:310)
            at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1114)
            at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
            at tp2.Manager.<init>(Manager.java:34)
            ... 1 more
    BUILD SUCCESSFUL (total time: 0 seconds)

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Employee étends probablement une classe non serializable sans constructeur par défaut.


    To allow subtypes of non-serializable classes to be serialized, the subtype may assume responsibility for saving and restoring the state of the supertype's public, protected, and (if accessible) package fields. The subtype may assume this responsibility only if the class it extends has an accessible no-arg constructor to initialize the class's state. It is an error to declare a class Serializable if this is not the case. The error will be detected at runtime.

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/08/2007, 12h46
  2. [BAT] : Copier les fichiers et les crypter
    Par ADONET dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 15/02/2006, 17h56
  3. Modifier les autorisations sur les fichiers
    Par SaeZ dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 24/10/2005, 12h08
  4. Réponses: 3
    Dernier message: 28/10/2004, 08h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo