Logo du forum
 

Forum TTH-News

| Inscription | | Recherche | | FAQ | | Accueil | | Liste des membres |
| Calendrier |
 
Vous n'êtes pas identifié! [Connexion] ou [Inscription] Forum » Programmation » [Java] » Problème d'ecriture de fichier
Login Mot de passe

3 visiteurs sur ce topic (0 membre(s), 3 invité(s) )


Auteur
Sujet : Problème d'ecriture de fichier
boubavic
Vétéran
Membre # 10228

 Avatar du membre
Lieu : Boulogne Billancourt

Messages :
3991 (0.77 par jour)


Score :

Message du 14-03-2007 @ 22:07      Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   


Bonsoir,

Je vous expose mon problème.
J'ai un premier traitement qui va prendre un fichier XML en entrée. Ce premier traitement va découper mon fichier en N fichiers en fonction de certaines balises.

J'ai ensuite, j'ai 3 traitements en parallèle qui se lance.
Chaque traitement va lire le contenu des petits fichiers générés précédement, et les ecrire dans 3 fichiers différents.

En résumé :
1 gros fichier => N petits fichiers => 1 gros fichier reconstituté
=> 1 gros fichier reconstituté
=> 1 gros fichier reconstituté

Voici mon problème :
De manière aléatoire, j'ai certaine partie de mes gros fichiers reconstitutés qui sont corrompus.

En clair, j'ai fichier de départ composé des sous-fichiers A,B,C et D.
En sortie et de manière aléatoire, je peux avoir 1 de mes 3 fichiers (ou plus) qui est composé par exemple de A, B", C et D" (le " indiquant que cette partie du fichier est corrompu).

Ma question est donc de savoir si la lecture (via des FileInputStream) en parallèle d'un même fichier peut poser problème (à ma connaissance non...) ...
De la même manière est-il possible que des ecritures (via des BufferedOutputStream) sur des fichiers différents aient une influence les unes sur les autres ?

Je vous avoue sincèrement que j'ai beau chercher d'ou ca peut venir je ne trouve pas ...

A noter par ailleurs que la JVM est une 1.4.2_8 et qu'elle tourne sous Solaris.

voilà si vous avez des idées ...

Merci

PS : l'image jointe illustre le traitement UN cas d'erreur




Pièces jointes
imageTraitement.PNG [Voir] [Lien direct vers ce fichier] (Taille : 19.81 Ko - Téléchargements 415)

- Haut de page -
icy
Administrateur
Membre # 871

 Avatar du membre
Lieu : Bxl

Messages :
23200 (3.76 par jour)


Score :

Message du 15-03-2007 @ 8:18   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

pbm courrant en multithread, 2 thread accedant le meme objet...
'fin, courrant en théorie pour moi, car j'en ai pas fait bc et pas sur des fichiers.
il faut :
-que l'objet soit synchronized : BufferedOutputStream est synchronized si je me souviens bien :p
-tu fais dans ta méthode au moment du write:
Code :


BufferedOutputStream buffer = ....
...
synchronized (buffer){
bUFFER.write(data);
}



'fin, esasie comme ca ;)

----------
"May He touch you with His Noodly Appendage"
- Haut de page -
boubavic
Vétéran
Membre # 10228

 Avatar du membre
Lieu : Boulogne Billancourt

Messages :
3991 (0.77 par jour)


Score :

Message du 15-03-2007 @ 9:20   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

2 threads qui accedent au même objet ?

C'est possible même si j'ai une nouvelle instance de mon objet pour chaque thread ? (déclaration d'un nouvel objet car c'est un fichier différent)

Précision supplémentaire, mes fichiers font bien la même taille à la fin du traitement ... toutefois le contenu ce n'est pas ça ...

merci pour ta réponse quoiqu'il en soit

[message édité le 15-03-2007 @ 9:22 Par boubavic]
- Haut de page -
icy
Administrateur
Membre # 871

 Avatar du membre
Lieu : Bxl

Messages :
23200 (3.76 par jour)


Score :

Message du 15-03-2007 @ 11:20   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

sorry, je pensais que tes 3 traitements en // ecrivait dans le meme fichier :o

----------
"May He touch you with His Noodly Appendage"
- Haut de page -


Aller dans le forum :  

Plan du forum | Contacter l'administrateur

Powered by SoulBB 3.0.1
© Soulmanto, 2003-2010

Valid XHTML 1.0 Transitional

Page générée en 0.033 secondes