# Java > Dveloppement Web en Java > Servlets/JSP >  Servlet crit sur fichier texte

## specsy

Bonjour,

je souhaite que la validation d'un formulaire se traduise par l'ajout d'une ligne dans un fichier texte et non par la gnration d'une page html.

Je dbute  peine dans les servlets, je ne sais que gnrer des pages html

dans ma servlet en faisant

PrintWriter out = req.getWriter();

out.println("<html>...") etc....etc...


C'est tout ce que je sais faire.

Donc, la requte ci-dessous me parait trs problmatique...Surtout que je ne suis pas trs bon en java non plus.

Merci d'avance.

----------


## specsy

Bonjour,

est ce que ce code DOIT m'crire sur un fichier existant "edt.txt" et plac  la racine du projet ?



```

```

----------


## OButterlin

Pour crire dans un fichier, il faut utiliser le package java.io et plus particulirement java.io.File.

Par exemple, pour crer un fichier et crire on ferait 


```

```

----------


## specsy

Bonsoir,

merci pour cette rponse , j'ai copi coll ce code dans ma servlet dans ma mthode doGet mais a ne me cre pas de fichier. C'est peut tre que j'ai mal cris le path. c://monFichier.txt, l c'est pour qu'il me le cre sur le disque.

Mais en fait, j'aimerais qu'il me cre le fichier  la racine de mon projet eclipse. Quel path faut il mettre dans ce cas ?

Merci d'avance  :;):

----------


## OButterlin

Euh, j'ai pas tout compris...
" la racine de ton projet Eclipse", c'est quoi pour toi :
- effectivement la racine de l'installation d'Eclipse
- la racine de ton projet web (qui, une fois dploy sur un serveur, ne sera plus li  Eclipse)

Que veux-tu pouvoir faire de ce fichier au juste, l'afficher dans une page JSP ?

----------


## specsy

> Euh, j'ai pas tout compris...
> " la racine de ton projet Eclipse", c'est quoi pour toi :
> - effectivement la racine de l'installation d'Eclipse
> - la racine de ton projet web (qui, une fois dploy sur un serveur, ne sera plus li  Eclipse)
> 
> Que veux-tu pouvoir faire de ce fichier au juste, l'afficher dans une page JSP ?



Bonjour,

oui tout  fait Obutterlin; comment fait on avec la mthode getRealPath() pour dire que l'on veut que le fichier soit  la racine du projet web qui une fois dploy ne sera plus li  eclipse. En fait, la mthode getRealPath est dprci de ce que me dit eclipse. Quelle est la mthode approprie stp?


Ce que je veux faire ?

j'ai un formulaire de gestion de sance de cours  avec le libell, dateCM,dure cours etc...

Et j'aimerais que chaque validation du formulaire ajoute une ligne adquate au fichier.txt.


Mon code ajoute bien une ligne mais  chaque validation du formulaire, cette ligne est remplac par la nouvelle validation.

a fait que mon fichier edt.txt, contient  chaque fois une seule ligne.

Aprs cela, je dois cre une deuxime servlet qui affiche la liste des sances dans leur ordre d'apparition sur le fichier.

voici mon code qui :



```

```


Et l, c'est ma deuxime servlet qui devrait afficher la liste des sances dans leur ordre d'apparition dans le fichier :



```

```

Merci pour toute aide.

----------


## Askerat

Regarde dans la javadoc, il y a un constructeur pour FileWriter qui accepte un deuxime paramtre ( boolen ), qui doit valloir vrai si on veut ajouter des donnes au fichier, ou faux si on veut craser. Mais l par contre a n'a rien de spcifique  JEE, a fait parti des bases de java.

----------


## OButterlin

Pour rcuprer la racine dans ta servlet, tu fais


```

```

A+

----------


## specsy

> Pour rcuprer la racine dans ta servlet, tu fais
> 
> 
> ```
> 
> ```
> 
> A+


Ok merci beaucoup  :;):  !

Bonne journe  ::P:

----------


## specsy

> Regarde dans la javadoc, il y a un constructeur pour FileWriter qui accepte un deuxime paramtre ( boolen ), qui doit valloir vrai si on veut ajouter des donnes au fichier, ou faux si on veut craser. Mais l par contre a n'a rien de spcifique  JEE, a fait parti des bases de java.


Exactement, c'est ce que j'ai fait.

J'ai rajout  ce code : fileWriter(nomFichier,true).

Et a ne marche toujours pas;

Quelqu'un saurait il pourquoi s'il vous plat  ::P: ?


Merci d'avance  ::king:: 

++

----------


## Jidefix

Je vais peut etre dire une connerie mais essaye de rajouter la ligne suivante:


```
outfic.flush();
```

 avant


```
outfic.close();
```

----------


## OButterlin

Pourtant ce code fonctionne


```

```

Ce sont peut-tre tes variables rcupres par request.getParameter(...) qui sont  null.
Tu peux vrifier en debug ?
Sinon, as-tu une erreur ?

----------


## dev_est

Bonjour,

Si vous avez une rponse pour ce TP, je suis intresse.

----------


## Makelzauvic

> Pourtant ce code fonctionne
> 
> 
> ```
> 
> ```


Et dans ce cas comment empcher le crer le fichier s'il existe dj?

----------


## joel.drigo

> Et dans ce cas comment empcher le crer le fichier s'il existe dj?


On peut tester l'existence du fichier simplement avant. Ou utiliser les options proposes par les mthodes de Files 


```
Files.newBufferedWriter(path, StandardOpenOption.CREATE_NEW, StandardOpenOption.APPEND);
```

causera une exception si le fichier existe dj, mais du coup, pas trs cohrent avec l'emploi du append.

----------


## joel.drigo

> Bonjour,
> 
> Si vous avez une rponse pour ce TP, je suis intresse.


Salut,

Si tu as des questions prcises on pourra y rpondre. Mais on ne fournit pas sur ce forum des solutions compltes de TP.

----------

