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

Servlets/JSP Java Discussion :

[jsp]lecture de fichier


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 71
    Points : 48
    Points
    48
    Par défaut [jsp]lecture de fichier
    Bonjour,
    j'ai créé une application web sous Jbuilder,

    Dans l'une des pages, j'essais de lire un fichier.

    Mais apparrament mon application ne trouves pas ledit fichier:
    capture de l'exception FileNotFoundException

    voici l'architecture de l'application sous jbuider:


    monApplicationWeb
    |
    |------repertoire/fic.txt
    |
    |------mapage.jsp (là où j'essais de lire le fichier fic.txt)

    dans ma page.jsp je fais appel à une methode pour lire le fichier (se trouvant dans un packetage):



    voici un extrait de la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    try{
           BufferedReader fichier = new BufferedReader(new FileReader("fic/fic.txt"));
          String str;
          str = fichier.readLine( );
          while (str != null){
               System.out.println(str);
               str = fichier.readLine( );
          }
           }
           catch(FileNotFoundException fnfe){return "Quelle Horreur, je ne trouve pas le fichieeeeeeeeer!!";}
           catch(IOException ioe){return "";}
          return("Quelle Horreur, Une erreur d'entree sortie!!!!!!!!");

    Je ne sais pas où placer le fichier .txt pour qu'il soit visible.

    en plus de cela j'aimerais bien qu'il soit à l'exterieur de l'application web.
    Afin qu'on puisse le modifier facilement.

    qq peut -il m'aider?mais je ne sais pas quel chemin indiquer dans ce cas là

  2. #2
    Membre éprouvé
    Avatar de request
    Inscrit en
    Novembre 2002
    Messages
    328
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 328
    Points : 1 248
    Points
    1 248
    Par défaut
    utilise ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.getServletContext().getResourceAsStream(("fic/fic.txt");

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 71
    Points : 48
    Points
    48
    Par défaut
    this.getServletContext().getResourceAsStream(("fic/fic.txt");
    Ca retourne quoi exactement.
    Un stream sans doute, donc mon code deviens


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    try{ 
           BufferedReader fichier = new BufferedReader(this.getServletContext().getResourceAsStream(("fic/fic.txt")); 
          String str; 
          str = fichier.readLine( ); 
          while (str != null){ 
               System.out.println(str); 
               str = fichier.readLine( ); 
          } 
           } 
           catch(FileNotFoundException fnfe){return "Quelle Horreur, je ne trouve pas le fichieeeeeeeeer!!";} 
           catch(IOException ioe){return "";} 
          return("Quelle Horreur, Une erreur d'entree sortie!!!!!!!!");
    c'est ça?

    En fait comme je n'ais jamais utilisé de servlet peux tu m'expliquer l'instructiopn que tu m'as passé si ça ne te dérange pas?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 71
    Points : 48
    Points
    48
    Par défaut
    En fait ma fonction (pour lire et traiter le fichier )est dans une classe normale.

    Comme la méthode que tu m'as passé n'est pas reconnu ,

    y a t il un import à faire?

    ou bien dois je passer par une servlet? chose que je n'ais jamais faite........

  5. #5
    Membre confirmé

    Inscrit en
    Juillet 2002
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 116
    Points : 514
    Points
    514
    Par défaut
    Si jamais c'est dans une classe externe donc pas une servlet, en effet la méthode getServletContext() n'existe pas ainsi je pense que tu dois passé en paramétre de ta fonction le InputStream fourni par la commande executé dans ta servlet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.getServletContext().getResourceAsStream("fic/fic.txt");
    Ensuite si tu veut utiliser ce InputStream avec BufferedReader, tu dois utiliser la classe InputStreamReader :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    InputStream input;
    BufferedReader fichier = new BufferedReader(new InputStreamReader(input));

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 71
    Points : 48
    Points
    48
    Par défaut
    Je dois donc programmer une servlet?


    qu'elle est la différence entre une servlet et une classe normale?

  7. #7
    Membre éprouvé
    Avatar de request
    Inscrit en
    Novembre 2002
    Messages
    328
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 328
    Points : 1 248
    Points
    1 248
    Par défaut
    Citation Envoyé par Debernad
    Si jamais c'est dans une classe externe donc pas une servlet, en effet la méthode getServletContext() n'existe pas ainsi je pense que tu dois passé en paramétre de ta fonction le InputStream fourni par la commande executé dans ta servlet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.getServletContext().getResourceAsStream("fic/fic.txt");
    Ensuite si tu veut utiliser ce InputStream avec BufferedReader, tu dois utiliser la classe InputStreamReader :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    InputStream input;
    BufferedReader fichier = new BufferedReader(new InputStreamReader(input));
    Je pense la même chose, fait le test.

  8. #8
    Membre confirmé

    Inscrit en
    Juillet 2002
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 116
    Points : 514
    Points
    514
    Par défaut
    En faite, quand je parle de servlet, je parle de ta JSP ... car une JSP est une servlet ...

    Pour me faire comprendre , voici un exemple :

    tu as ta page MaPage.jsp qui appelle la fonction lire() d'un classe externe que l'on nomme Test ...

    Donc tu as une classe Test qui posséde une méthode lire() dont on passe en paramétre le flux d'entrée au fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public class Test
    {
            public void lire(InputStream input)
            {
                 ...
            }
    }
    Tu as ta page MaPage.jsp qui a un objet Test instancié et qui doit récupérer le flux d'entrée du fichier et appelé la méthode lire() de l'objet Test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <%
             Test t1 = ... ;
             InputStream input = this.getServletContext().getResourceAsStream("fic/fic.txt"); 
             t1.lire(input);
    %>

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 71
    Points : 48
    Points
    48
    Par défaut
    ok,
    c'est parce que la jsp se transformera en servlet que tu l'a appellé ainsi.

    bon je vais utilisé ce que tu m'as proposé

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 71
    Points : 48
    Points
    48
    Par défaut
    Ca fonctionne trés bien .

    Merci à vous deux.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lecture de fichier mp3 avec servlets/JSP
    Par MarENSI dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 29/10/2010, 14h38
  2. [JSP] Recopier le résultat d'une JSP dans un fichier
    Par xxaragornxx dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 29/09/2003, 15h10
  3. [AS400][Intranet][PC] Lecture de "fichiers" AS400
    Par lando dans le forum Autres SGBD
    Réponses: 4
    Dernier message: 16/07/2003, 11h11
  4. Lecture de fichier
    Par Watcha dans le forum x86 16-bits
    Réponses: 13
    Dernier message: 04/03/2003, 20h43
  5. Lecture de fichiers ".WAV"...
    Par 0x4e84 dans le forum Langage
    Réponses: 2
    Dernier message: 03/09/2002, 09h43

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