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 :

ouvrir/fermer un fichier à répétition


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut ouvrir/fermer un fichier à répétition
    Bonjour,

    En Java, je souhaite réaliser deux applications. L'une écrit dans un fichier, l'autre le lit.

    Le problème est que l'écriture et la lecture peuvent se faire simultanément.

    Comment gérer les locks dans ce cas ?

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    L'écriture se fait à la fin du fichier, ou alors n'importe ou dans le fichier ?
    Si c'est à la fin, il n'y a pas de lock à faire. Le lecteur attend simplement les données en lecture bloquante.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    Ok, merci.

    Et qu'en est-il des open/close à répétition ? Est-ce que ça ne bouffe pas trop de CPU / IO, à concurrence d'une entrée par seconde ? Est-il préférable de garder le fichier ouvert ? Si oui, comment le lecteur doit-il fonctionner ?

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    961
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 961
    Par défaut
    Est-ce que vous êtes vraiment obligé d'en écrire une toute les secondes? Pouvez vous en écrire une toute les cinq secondes? Un buffer peut réduire la fréquence des accès disques.

  5. #5
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Le mieux est de laisser le fichier ouvert en lecture par le lecteur. Un read bloquant suffit. Par contre tu devras ajouter un code de vérification pour ne pas faire un traitement trop tôt.
    Exemple : l'écrivain donne un nom de méthode par ligne. Le lecteur appelle la méthode par introspection. Avant de construire la méthode, il faut s'assurer qu'on a lu un retour à la ligne.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    et une ouverture/fermeture par seconde, ce n'est pas catastrophique, sauf si le fichier est sur un réseau distant

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    Citation Envoyé par BugFactory Voir le message
    Est-ce que vous êtes vraiment obligé d'en écrire une toute les secondes? Pouvez vous en écrire une toute les cinq secondes? Un buffer peut réduire la fréquence des accès disques.
    Les contraintes de temps de développement ne me permettent pas d'élaborer un buffer actuellement. Si au moins c'était du JEE, je n'aurais aucun problème, mais ce "truc" est vraiment quick and dirty en J2SE. Pour être franc, si ça ne tenait qu'à moi, ça passerait illico par une base de données.

    Donc le design propre et joli, je suis contraint d'oublier à mon plus grand désarroi.

    Enfin, niveau perfs, je suis rassuré.

    Mreci à vous

Discussions similaires

  1. ouvrir et fermer un fichier excel en sauvegardant les modifications.
    Par decoalaa dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 17/10/2008, 15h37
  2. Ouvrir/fermer un fichier excel existant
    Par ghostvb dans le forum VBScript
    Réponses: 1
    Dernier message: 02/07/2008, 11h21
  3. Réponses: 2
    Dernier message: 20/03/2008, 09h38
  4. [débutant]Ouvrir/fermer un fichier
    Par ProgVal dans le forum C++
    Réponses: 6
    Dernier message: 28/12/2007, 21h17
  5. {VBA Excel}Ouvrir copier et fermer plusieurs fichiers excel
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 26/06/2007, 09h52

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