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

Entrée/Sortie Java Discussion :

Ecriture simultanée dans un fichier


Sujet :

Entrée/Sortie Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 25
    Points : 14
    Points
    14
    Par défaut Ecriture simultanée dans un fichier
    Bonjour,
    mon problème est le suivant :
    je dispose de plusieurs programmes JAVA qui écrivent chacun dans des fichiers de logs communs.
    Mes programmes étant indépendant et l'utilisation de "sémaphores" étant par conséquent impossible, je souhaiterais connaître une solution pour que plusieurs applications puissent écrire en même temps dans un même fichier ?
    Existe t-il une méthode d'écriture de type "bloquante" qui attend son tour pour écrire dans un fichier texte ?

    Merci d'avance

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 154
    Points : 143
    Points
    143
    Par défaut
    A mon avis, tu devrais créer un flux qui permet de gérer en entrée plusieurs flux. Les faisant écrire les un après les autres

  3. #3
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Bonjour,
    à mon avis, ton problème n'est pas lié spécifiquement à Java, mais est plutôt du ressort du système sur lequel tu fais tourner ton application, par exemple s'il dispose d'un mécanisme de verrouillage de fichiers.
    Sinon, je vois une proposition, qui serait de créer un processus de type serveur, vers lequel les différentes applications adresseraient leur requête d'écriture, et qui se chargerait de les traiter au fur et à mesure...

  4. #4
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Bonjour,
    Je ne sais pas si ce que tu demandes est réalisable parce que tu ne peux pas partager des objets entre plusieurs JVM.

    Ce que tu peux faire, c'est un programme qui écoute un port UDP (DatagramSocket), et qui écrit tout ce qu'il reçoit sur un log. Tes autres programmes lui envoient leurs messages de log dans des message UDP.

    [edit] oups, trop lent !

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 25
    Points : 14
    Points
    14
    Par défaut
    Mouais cette solution me convient pas trop....
    Le problème est que j'ai des programme VBS qui peuvent également écrire dans ces fichiers commun (dsl de l'avoir omis)

    Le plus interessant pour moi serait une méthode write() bloquante, qui se bloque tant qu'elle ne peut pas écrire....
    mais je sais pas si cela existe

  6. #6
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Je ne pense pas que cela soit possible en l'état (tu as forcément un flux par process).

    Une solution serait de créer un serveur de log : au lieu d'écrire dans un fichier tu ecrit dans une socket, et c'est le serveur écrit dans le fichier de log... La plupart des API de logging Java permettent cela simplement... par contre je ne sais pas si c'est utilisable depuis d'autres langages...

    a++

    PS : mais le plus propre serait quand même d'utiliser un fichier par processus... non ?

  7. #7
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    De toute façon, vu que tu as des programmes VBS qui peuvent écrire dans ces fichiers, tu ne pourras pas résoudre le problème au niveau de tes applications Java uniquement... même si le write() est bloquant, que fais-tu pour les programmes VBS ????
    Je chercherais une solution côté système, pour voir s'il est possible de synchroniser les accès à un fichier donné.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 25
    Points : 14
    Points
    14
    Par défaut
    Bon si je trouve une telle solution en JAVA, je chercherai ensuite pour les VBS.
    Il doit forcément exister une fonction write bloquante.... je sais que cela existe en PHP...

Discussions similaires

  1. lecture et ecriture simultanées dans un fichier en c++
    Par romainprogdebutant dans le forum C++
    Réponses: 9
    Dernier message: 22/06/2015, 13h56
  2. Ecriture simultanée dans un fichier Excel
    Par apo.arutha dans le forum Développement de jobs
    Réponses: 7
    Dernier message: 21/01/2010, 16h14
  3. Ecriture multiple dans un fichier Excel
    Par oregos dans le forum MATLAB
    Réponses: 6
    Dernier message: 14/03/2007, 14h50
  4. ecriture lecture dans un fichier
    Par maz dans le forum C
    Réponses: 3
    Dernier message: 19/10/2006, 11h21
  5. [C#]Ecriture/Suppression dans un fichier
    Par torNAdE dans le forum Windows Forms
    Réponses: 8
    Dernier message: 11/05/2006, 09h11

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