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 :

ecriture dans fichier par ma methode print


Sujet :

Entrée/Sortie Java

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 175
    Points : 48
    Points
    48
    Par défaut ecriture dans fichier par ma methode print
    Salut
    Debutant en java, je suis entrain de realiser ce programme:

    j´ai 2 classes, la premiere s´appelle Idevice et la deuxieme Ilogging.

    Dans Idevice j´ai defini une classe public void print() qui doit afficher les resultats sur la console, et dans la classe main principale Ilogging je cree un objet et j´essaie de l´ecrire ds un fichier texte.

    je vous donne mon code:

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
     
    class Idevice {
      // Time where the Device was created
     long lDeviceId; // Device Identifier
     String aktion; // 
     String deskription;
     int iLogId;
     
     
     public Idevice(long lDeviceId,String aktion,String deskription,int iLogId){
     
      this.lDeviceId = lDeviceId;
      this.aktion = aktion;
      this.deskription = deskription;
      this.iLogId = iLogId;
     }   
     
     public void print(){
     
      System.out.print(" DeviceID: " + lDeviceId);
      System.out.print(" Aktion: " + aktion);
      System.out.print(" Deskription: " + deskription);
      System.out.println(" LogID: " + iLogId);
     
     }
     
     
    }
    ensuite
    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
    20
    21
    22
    23
    24
    class Ilogging {
     public static void main(String[] args) throws IOException {
     
     
     
      Idevice device1 = new Idevice(12345678901L,"Licht anmachen","Zuständig für die Lichte",01);
      Idevice device2 = new Idevice(00000L,"Licht zu","Z die Lichte",02);
     
      /*System.out.print(device1.aktion);
      System.out.print(device2.aktion); 
      device1.print();
      */
       try {
        BufferedWriter out = new BufferedWriter(new FileWriter("c:/ballon.txt"));
        out.write(device1.print());
        out.close();
        } catch (IOException e) {
        } 
     
     
     
     
     }
      }
    mais j´ai un probleme à ce niveau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    out.write(device1.print());
    avec le message d´erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    
    Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    The method write(int) in the type BufferedWriter is not applicable for the arguments (void)
    

    Comment je peux modifier mon code pour pouvoir ecrire les elements instanciés dans le fichier?

    Au depart j´ai voulu utiliser les interfaces qui devait implementer une methode add(long lDeviceId,String aktion,String deskription,int iLogId) mais comme je suis debutants et ne m´y connaissant pas j´ai pas su comment m´y prendre.

    Pouvez vous m´aider a corriger mon probleme??

    merci a bientot

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    940
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 940
    Points : 1 817
    Points
    1 817
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    out.write(device1.print());
    Attention, vous mélangez tout!

    Votre méthode print écrit quelque chose sur l'écran. Ce qui ne change absolument rien pour write! Print pourrait tout aussi bien lancer une fusée dans l'espace que write n'en serait pas plus avancé.

    Ce que write utilise, c'est la valeur renvoyée par print. Hors :
    print renvoie void, c'est à dire rien du tout.

    Il faudrait que print renvoie une chaîne de caractère, le message à afficher.
    Le mieux serait de créer une nouvelle fonction renvoyant la chaîne à écrire.

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 175
    Points : 48
    Points
    48
    Par défaut
    Pourriez vous m´aider à ecrire pareille fonction?? je suis bloqué la..
    Merci

  4. #4
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Je suis de bonne humeur, je te mets sur la bonne voie :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    class Idevice {
      // Time where the Device was created
     long lDeviceId; // Device Identifier
     String aktion; // 
     String deskription;
     int iLogId;
     
     
     public Idevice(long lDeviceId,String aktion,String deskription,int iLogId){
     
      this.lDeviceId = lDeviceId;
      this.aktion = aktion;
      this.deskription = deskription;
      this.iLogId = iLogId;
     }   
     
     public void print(){
     
      System.out.print(getTexte());
     
     }
     
    public String getTexte(){
    <div style="margin-left:40px">String tonTexte = " DeviceID: " + lDeviceId + "\n" +
    " Aktion: " + aktion + "\n" + "...";
    return tonTexte;</div>}
     
    }
    et dans l'autre tu utilises out.write(device1.getTexte());

    Pour les explications :

    la méthode getTexte() va te retourner un String qu'ensuite tu vas utiliser soit pour imprimer à l'écran soit pour écrire dans un fichier.

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 175
    Points : 48
    Points
    48
    Par défaut
    merci pour votre aide, juste aussi rectifier que le retour a la ligne dans le fichier se fait avec " \r\n " car en essayant juste "\n" ca ne marche pas.
    A bientot

Discussions similaires

  1. Réponses: 14
    Dernier message: 22/05/2011, 12h21
  2. [VB.NET]Ecriture dans fichier
    Par mhamdi45 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 03/07/2006, 10h20
  3. [Fortran 90] Ecriture dans fichier
    Par panda31 dans le forum Fortran
    Réponses: 9
    Dernier message: 12/06/2006, 16h53
  4. Écriture dans fichier PDF
    Par clairette dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 12/05/2006, 16h52
  5. [SERVLET][JSP] Ecriture de fichier par la servlet
    Par Jabwoo dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 15/07/2004, 17h57

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