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 fin de fichier


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 206
    Par défaut ecriture fin de fichier
    bonsoir
    je viens poster une question car j'ai un petit probleme dans mon programme. en fait pas de probleme pour ouvrir mon fichier afin d'ecrire a la fin (un exemple etant disponible dans la faq developpez.com) cependant le probleme vient lorsque je souhaite ecrire dans ce fichier.

    j'ai donc cherché dans la documentation de sun http://java.sun.com/j2se/1.4.2/docs/...putStream.html
    mais je ne vois pas trop comment utiliser cette fonction write.
    quelqu'un aurait il un exemple simple a me montrer?
    merci

  2. #2
    Membre chevronné Avatar de spekal
    Inscrit en
    Mai 2005
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 502
    Par défaut
    Avec les flux tu dois écrire les fichiers par flots, octets par octets, ou groupe d'octets par groupe, du début à la fin. En mode append, tu peux commencer à la fin. Tu ne peux pas écrire quelque part, revenir en arrière, re-écrire, etc.

    Avec le RandomAcessFile, tu peux écrire et lire où tu veux comme tu veux.

  3. #3
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    Citation Envoyé par spekal
    Avec les flux tu dois écrire les fichiers par flots, octets par octets, ou groupe d'octets par groupe, du début à la fin. En mode append, tu peux commencer à la fin. Tu ne peux pas écrire quelque part, revenir en arrière, re-écrire, etc.

    Avec le RandomAcessFile, tu peux écrire et lire où tu veux comme tu veux.
    Mais tu ne peux pas insérer ni supprimer ( sans réécrire le fichier entièrement ), tu peux juste réécrire par dessus ce qui existe déjà
    Faire une recherche sur le forum, le sujet a été abordé maintes fois ( comment insérer une ligne dans un fichier etc. )
    D'ici quelque jours, je vais poster dans la section "sources java" une classe permettant de gérer les fichiers non linéaires indexés en mémoire virtuelle permettant des insertions, suppressions, ajouts à la volée de manière performante. Je t'invite à surveiller sa sortie imminente.

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 206
    Par défaut
    en fait ce qui me pose probleme c'est juste avec le FileOutputStream comment ecrire dans le fichier car j'ai des problemes avec la fonction write tout simplement.

  5. #5
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par Adren
    comment ecrire dans le fichier car j'ai des problemes avec la fonction write tout simplement.
    Quel est le problème avec write() exactement ???

    a++

  6. #6
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    +1 c'est koi le problème ?
    write(byte [] b) écrit le tableau "b" de byte
    write(byte [] b,long off,int len) écrit à partir de la position "off", "len" byte du tableau "b"

  7. #7
    Membre confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 206
    Par défaut
    j'ai réalisé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    File f = new File("ex.txt");
    flux = new FileOutputStream(f);
    PrintWriter pr = new PrintWriter(flux);
    pr.println("test");
    cela compile mais rien n'apparait dans mon fichier (je l'ai pourtant bien fermé à la fin de mon programme) une idée?

  8. #8
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Essaie de faire un flush() de ton writer avant de fermer.

  9. #9
    Membre confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 206
    Par défaut
    exact merci de ton aide en tout cas, je n'ai pas beaucoup d'experience de java derriere moi donc j'ai un peu de mal quelques fois

  10. #10
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,


    A la fermeture du flux, le flush() est automatique effectué.
    tu ne dois pas fermer tes flux correctement !

    Penses à utiliser un bloc finally pour cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    		PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("ex.txt")));
    		try {
    			pr.println("test");
    		} finally {
    			out.close();
    		}
    a++

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 31/01/2011, 18h01
  2. Probleme d'ecriture dans un fichier en mode Text
    Par bbozet dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/01/2004, 13h46
  3. [LG]ecriture dans un fichier binaire
    Par jsaviola dans le forum Langage
    Réponses: 3
    Dernier message: 26/12/2003, 17h30
  4. Réponses: 2
    Dernier message: 26/09/2003, 14h51
  5. problem lors de l'ecriture d'un fichier
    Par gemai dans le forum C
    Réponses: 20
    Dernier message: 29/08/2003, 15h01

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