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

Java Discussion :

Problème Lecture Ecriture


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 22
    Par défaut Problème Lecture Ecriture
    Bonjour,

    Suite a ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
           JFileChooser jfc = new JFileChooser();
            jfc.showOpenDialog(null);
            File f=jfc.getSelectedFile();
            if(f==null) System.exit(0);
     
            BufferedInputStream b=new BufferedInputStream(new FileInputStream(f));
            byte tab[] =new byte[1024];
     
            BufferedOutputStream bs = new BufferedOutputStream(new FileOutputStream(new File(f.getName())));
     
            while((b.read(tab,0,tab.length))>tab.length){
     
                bs.write(tab,0,tab.length);
     
            }
    J'ai un fichier qui fait 0 octet, pouvez vous me dire qu'est ce qui ne va pas dans mon code ?

    Merci d'avance

  2. #2
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Il manque les flush et les fermeture des flux...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 22
    Par défaut
    Oui effectivement, j'avais oublié les flush et close, cependant voici le nouveau code, et j'ai toujours le meme resultat, un fichier de 0ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
            JFileChooser jfc = new JFileChooser();
            jfc.showOpenDialog(null);
            File f=jfc.getSelectedFile();
            if(f==null) System.exit(0);
     
            BufferedInputStream b=new BufferedInputStream(new FileInputStream(f));
            byte tab[] =new byte[1024];
            int emplacement = 0;
     
            BufferedOutputStream bs = new BufferedOutputStream(new FileOutputStream(new
    File(f.getName())));
     
            while((b.read(tab,emplacement,tab.length))>tab.length){
     
                bs.write(tab,emplacement,tab.length);
                bs.flush();
            }
            b.close();
            bs.close();

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 22
    Par défaut
    Ok je répond a ma betise: le test sur la condition était faux: c'est pas mais
    Merci en tout cas pour le close et flush, il est vrai que j'ai pas trop l'habitude de m'anipuler les flux

  5. #5
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while((b.read(tab,emplacement,tab.length))>tab.length){
    je remplacerais par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while((b.read(tab,emplacement,tab.length))>0)


    PS: ce qui se traduit par "tout pendant qu'il y a des bytes à lire"

    Mais ton code à d'autres problèmes... Il manque une variable pour stocker le nombre de bytes qui viennent d'être lus

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 282
    Par défaut
    Et de plus si le fichier sélectionné est dans le répertoire de ton application, alors tu vas l'écraser en essayant de le copier, car tu utilises son nom (f.getName()) ...

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 22
    Par défaut
    Merci de vos conseils, j'ai vu effectivement dans l'api que read renvoit -1 à la fin du fichier.

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

Discussions similaires

  1. Problème d'utilisation de FSO pour lecture/ecriture
    Par Cristalinz dans le forum VBScript
    Réponses: 5
    Dernier message: 12/12/2013, 14h49
  2. [XL-2003] Lecture/Ecriture fichier txt - Problème caractères spéciaux
    Par Blencastreur dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/06/2012, 18h08
  3. Problème lecture ecriture d'un fichier
    Par alexandreltv dans le forum Android
    Réponses: 5
    Dernier message: 26/04/2012, 16h54
  4. Problème de lecture/ecriture dans un fichier txt
    Par fraid49 dans le forum Général Python
    Réponses: 6
    Dernier message: 20/11/2008, 11h32
  5. lecture/ecriture des broches RTS/CTS du port RS232
    Par .:: sly51 ::. dans le forum C
    Réponses: 3
    Dernier message: 24/10/2006, 15h28

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