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

Java Discussion :

Declaration d'un fichier


Sujet :

Java

  1. #1
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 20
    Par défaut Declaration d'un fichier
    Salut tou le monde
    Est ce qu'on peut déclarer un fichier comme une variable globle dans une classe java ?
    Dans ce cas ou est ce qu'on peut mettre le throws IOException ?

    Voila ce que je veux dire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class Exemple {
     
    FileWriter  Fich=new  FileWriter("fichier.txt");
     
    public static void main(String[] args)
    {.................................}

    Si je compile un truc de ce genre il me dit Erreur il faut mettre le throws IOException mais le problème c'est que je ne sais pas ou est ce qu'il faut le mettre

    Si quelqu'un a une idée sur ça ,Veuillez me repondre SVP

  2. #2
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Pour répondre à la question : oui c'est possible, en utilisant le mot clé "static".
    Par contre je vous le déconseille fortement. Un writer DOIT être géré proprement avec un contrôle des flux (writer.close() DOIT être appelé). Il est donc dangereux d'avoir un writer en variable globale.

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 497
    Par défaut
    Est ce qu'on peut déclarer un fichier comme une variable globle dans une classe java ?
    Procédé du développeur :

    - Je veux faire ceci, pour quelle raison dois-je le faire ? l'interêt ?
    - Je souhaites faire de cette manière, pour quelle raison faire ainsi plutôt que comme ça ?

    Dans ce cas ou est ce qu'on peut mettre le throws IOException ?
    Question :

    Quelle est la signification du mot clef throws ?
    si tu sais à quoi il sert, tu répondras à ta question

    Les variables globales à utiliser dans d'extrêmes circonstances, va à l'encontre de la programmation Objet.

  4. #4
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 20
    Par défaut RE:
    Citation Envoyé par 19cmos83 Voir le message
    Procédé du développeur :

    - Je veux faire ceci, pour quelle raison dois-je le faire ? l'interêt ?
    - Je souhaites faire de cette manière, pour quelle raison faire ainsi plutôt que comme ça ?

    Je veux utiliser un fichier comme variable globale parceque mon programme contient plusieurs fonctions qui utilisent ce fichier alors aulieu de le passer à toutes ces fonctions (à chaque fois) comme paramètre d'entrée je prefere l'utiliser une fois pr toute comme une variable globale

    Si vous avez une autre solution ... dites la j'en serai reconnaissante



    Question :

    Quelle est la signification du mot clef throws ?
    si tu sais à quoi il sert, tu répondras à ta question

    Je sais qu'il y a un mot clé throws (Exception) que l'on peut mettre tout à fait au debut d'une fonction :avant l'accolade
    comme il y a le mot clé throw :utilisée pour rejetter de nouvelles exceptions
    Comme il y a le catch et try qui peuvent remplacer throws .....

    Mais dans le cas que j'ai cité je pense ça doit être impossible de rejetter l'exception

    Les variables globales à utiliser dans d'extrêmes circonstances, va à l'encontre de la programmation Objet.
    Les variables globales autre qu'un fichier je n'est pas eu de problème avec pour le moment ... mon problème (soit disons) est dans la declaration d'un fichier global


    MERCI pour votre réponse
    et j'attend une autre

  5. #5
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 20
    Par défaut MERCI pour votre réponse
    Citation Envoyé par natha Voir le message
    Pour répondre à la question : oui c'est possible, en utilisant le mot clé "static".
    Par contre je vous le déconseille fortement. Un writer DOIT être géré proprement avec un contrôle des flux (writer.close() DOIT être appelé). Il est donc dangereux d'avoir un writer en variable globale.

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 497
    Par défaut
    Les variables globales autre qu'un fichier je n'est pas eu de problème avec pour le moment
    Ceci ne prouvant pas qu'il est bon de les utiliser

    à utiliser dans d'extrêmes circonstances, va à l'encontre de la programmation Objet.
    pour revenir au sujet :

    Est ce qu'on peut déclarer un fichier comme une variable globle
    Au même titre, qu'un Objet ? au même titre qu'un type primitif ... pourquoi pas ... l'interet dans tout ca ?

  7. #7
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 20
    Par défaut
    Citation Envoyé par 19cmos83 Voir le message
    Ceci ne prouvant pas qu'il est bon de les utiliser


    pour revenir au sujet :



    Au même titre, qu'un Objet ?
    au même titre qu'un type primitif

    Non c'est pas ça ce que je veux dire mais je veux l'utiliser au titre d'une variable qui pourra être modifiée et utilisée par toutes les fonctions du programme (comme une variable compteur ou autre chose...)

    ... pourquoi pas ... l'interet dans tout ca ?
    Je veux le declarer une seule fois dans le programme

    Essayez de voir un peu ça:
    Le programme contient plusieurs fonctions tq chaque fct utilise ce fichier
    si je ne le déclare pas comme une variable globale je serai obligée de le passer comme paramètre d'entrée à toutes les fcts
    Et moi je veux eviter tout cela ....

    Apperement La solution que je veux est impossible

    Si vous avez une solution à ce que j'ai dit Répondez SVP

  8. #8
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Citation Envoyé par mari_moon Voir le message
    Le programme contient plusieurs fonctions tq chaque fct utilise ce fichier
    si je ne le déclare pas comme une variable globale je serai obligée de le passer comme paramètre d'entrée à toutes les fcts
    Et moi je veux eviter tout cela ....
    Tu as une mauvaise approche du problème.
    1. Il est faux de solutionner via une globale
    2. Il est faux de passer un writer à toutes les méthodes (on parle de méthodes et non de fonctions en langage objet)
    3. Il faut que tu ais une classe qui gère le writer, et c'est cette classe que tu passeras à toutes les méthodes qui en ont besoin. Cette classe gèrera l'écriture, et le contrôle des flux. L'idéal serait même que cette classe puisse être implémentée différemment le jour où tu ne voudrais plus écrire dans un fichier mais dans un autre type de flux.

    Même si la solution 3 te semble la moins commode, c'est tout l'inverse, la solution 3 est la meilleure et la plus maintenable et modulaire.

  9. #9
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 20
    Par défaut
    Citation Envoyé par natha Voir le message
    Tu as une mauvaise approche du problème.
    1. Il est faux de solutionner via une globale
    2. Il est faux de passer un writer à toutes les méthodes (on parle de méthodes et non de fonctions en langage objet)
    .
    En fait c'est possible que j'ai mal expliqué mn travail mais je travaille avec l'outil javacc et le fichier que je veu créer est le fichiers d'erreur
    je doit le passer à la fct Start du parser , et cette fonction va le passer de son tour à d'autres

    Mais j'ai déja passé un fichier aux fcts du parser et ça a marché avec moi

    Citation Envoyé par natha Voir le message
    3. Il faut que tu ais une classe qui gère le writer, et c'est cette classe que tu passeras à toutes les méthodes qui en ont besoin. Cette classe gèrera l'écriture, et le contrôle des flux. L'idéal serait même que cette classe puisse être implémentée différemment le jour où tu ne voudrais plus écrire dans un fichier mais dans un autre type de flux.

    Même si la solution 3 te semble la moins commode, c'est tout l'inverse, la solution 3 est la meilleure et la plus maintenable et modulaire.
    j'ai pas bien compri cette solution : Vous voulez dire quoi par (....gère le writer ) est ce que ça concerne la declaration ,l'ecriture sur le fichier
    Ca peut être une bonne solution mais il me faut un exemple pr la comprendre

    Merci pour votre réponse
    si vous avez un exemple sur ça passez le moi SVP
    et MERCI d'avance

Discussions similaires

  1. ajax et redirection declarée dans le fichier php
    Par misakilou dans le forum jQuery
    Réponses: 6
    Dernier message: 12/05/2011, 15h23
  2. Réponses: 3
    Dernier message: 01/03/2008, 19h41
  3. Déclarer une trame de 9 octets dans un fichier .m
    Par berberat dans le forum MATLAB
    Réponses: 13
    Dernier message: 01/08/2007, 09h35
  4. Réponses: 6
    Dernier message: 22/05/2006, 13h54
  5. Declaration plusieurs DTD dans un fichier XML
    Par sebastien2222 dans le forum Valider
    Réponses: 4
    Dernier message: 02/03/2006, 14h34

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