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 :

Servlet: Ecrire dans un fichier txt des données issues d'un formulaire HTML


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Par défaut Servlet: Ecrire dans un fichier txt des données issues d'un formulaire HTML
    Bonjour,

    Je suis en train de réaliser une servlet pour gérer une collection de livres. Et mon soucis est d'écrire dans un fichier .txt le enregistrements provenant des formulaires. J'ai récupéré tous les enregitrements grâce à la méthode getParameter mais je n'arrive pas à érire le données dans mon fichier.

    Voici 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
     
    String titre = request.getParameter("titre");
     
        	if (titre.length() == 0)
        	{
        		out.println("L'enregistrement du titre de ce livre est vide" + "<br>");
        	}
        	else
        	{
        		out.println("<font size=\"3\">");
        		out.println("Titre :" + titre + "<br>");
        	}
     
            FileWriter writer = null;
            try{
                 writer = new FileWriter("collection.txt", true);
                 writer.write(titre,0,titre.length());
            }catch(IOException ex){
                ex.printStackTrace();
            }finally{
              if(writer != null){
                 writer.close();
              }
            }
    Ce n'est pas le code en entier mais le bouts interessant pour mon test, histoire de savoir si cela fonctionne.

    Merci d'avance

  2. #2
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Quand tu dis que tu n'y arrive pas , tu as une exception ou le fichier est seulement vide ?

  3. #3
    Membre éclairé Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Par défaut
    Le plus drôle c'est que je n'ai mm pas de fichier. Normalement, le fichier devrait se trouver dans le même dossier que les classes ? Sinon peut être qu'il existe mais je ne sais où.

  4. #4
    Membre éclairé Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Par défaut
    Ba en fait, après avoir répondu à ton post je me suis dit, fait une recherche windows, ça ne mange pas de pain. Et en fait, ba je l'ai trouvé dans la racine de Tomcat.

    Je vais faire des tests pour voir si le programme fait bien ce que je veux.

  5. #5
    Membre éclairé Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Par défaut
    Le programme écris bien dans le fichier mais seulement lorsque je met qu'un seul parametre comme par exemple titre. Mais cela ne fonctionne pas lorsque je fais ceci :

    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
     
        	    	BufferedWriter ecrivain = null;
            try{
                 ecrivain = new BufferedWriter (new FileWriter("collection_livres.txt", true));
                 ecrivain.write("Titre : " + titre + "\n",0,titre.length() + 10);
                 ecrivain.write("Isbn : " + isbn + "\n",0,isbn.length() + 9);
                 ecrivain.write("Auteur : " + auteur + "\n",0,auteur.length() + 11);
                 ecrivain.write("Année : " + annee + "\n",0,annee.length() + 10);
                 ecrivain.write("Nombre de pages : " + nombrepages + "\n",0,nombrepages.length() + 18);
                 ecrivain.write("Prix : " + prix + "\n",0,prix.length() + 9);
            }catch(IOException ex){
                ex.printStackTrace();
            }finally{
              if(ecrivain != null){
                 ecrivain.close();
              }
            }
    J'ai une erreur qui me dit que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    java.lang.StringIndexOutOfBoundsException: String index out of range: 15
    	java.lang.String.getChars(Unknown Source)
    	java.io.BufferedWriter.write(Unknown Source)
    	Visionneuse.doGet(Visionneuse.java:148)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    La ligne 148 est celle ou se trouve ecrivain.write ...titre...
    Normalement cette exception n'apparait seulement lorsque il y trop de caractere pour ce qu'il y a de allouer ? Je pense avoir bien compté pourtant.

    Si quelqu'un a une idée.

  6. #6
    Membre éclairé Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Par défaut
    Pour ceux que cela intéressent j'ai réussi en changeant de méthode. A la place d'utiliser la méthode write qui ne fonctionnais pas parce que je ne sais pourquoi, j'ai utilisé simplement la méthode println toujours avec filewriter.

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

Discussions similaires

  1. Ecrire dans un fichier .txt des vecteurs colonnes
    Par rouxmasta dans le forum MATLAB
    Réponses: 4
    Dernier message: 30/11/2009, 10h20
  2. Réponses: 1
    Dernier message: 28/03/2008, 15h49
  3. Ecrire dans un fichier .txt
    Par chabRRR dans le forum Langage
    Réponses: 3
    Dernier message: 13/03/2007, 19h30
  4. Ecrire dans un fichier .txt
    Par yinyann86 dans le forum Pascal
    Réponses: 17
    Dernier message: 24/11/2006, 13h36
  5. Ecrire dans un fichier txt sans en effacer le contenu
    Par cari dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 14/12/2005, 18h11

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