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 :

pourcentage d'un fichier lu


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 55
    Par défaut pourcentage d'un fichier lu
    Salut je souhaiterai afficher dans mon application, le pourcentage d'un fichier lu j'ai essayer ca :

    pourcentage <- ligneLu.length() / fichier.length() * 100

    problème ça ne fonctionne pas pour certain gros fichier au bout d'un moment les lignes lu font plus que le totale.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Normal puisque toutes les lignes ne font pas la même taille et que la taille du fichier n'indique pas le nombre de lignes, mais le nombres d'octets.

    Il ne faut donc pas compter les lignes, il faut compter les octets. Malheureusement, pour compter les octets tout en lisant des lignes, il faut le faire, soit de manière très lente (lire caractère par caractère jusqu'à tomber sur une fin de ligne, en buffurisant peu,) soit de manière imprécise (considérer qu'on en est, non pas à la position de la dernière ligne, mais à la position du dernier octet gardé dans le buffer. Ce qui peut être faux si, par exemple, chaque ligne prend 5 minutes à traiter, et que les 5 dernières lignes sont toutes dans le buffer, le fichier étant considéré à 100%, et pourtant il reste 25 minutes de traitement.)
    Et c'est assez compliqué à faire, aussi.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2013
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 55
    Par défaut
    merci de ta réponse néanmoins existe-il une solution fiable ?

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Oui, mais je n'en ai pas trouvé sur Internet. Je les ai programmées moi-même.
    Cela dit, si tu connais les encodages possibles des fichiers à lire, et qu'ils sont tous rétrocompatibles ASCII, c'est assez simple : il suffit d'utiliser directement FileInputStream et de compter les octets lus. Pour lire une ligne, tu lis simplement des octets jusqu'à trouver une fin de ligne, et tu gardes les suivants de côté pour la prochaine lecture.

    Edit : ok, je retire ce que j'ai dit, même comme ça ça reste assez difficile.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Février 2013
    Messages : 124
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    BufferedReader br=new BufferedReader(new FileReader(url))
    int compteur=0;
    while((ligne=br.readligne)!=null){
    compteur++;
    }
    br.close()
    br=new BufferedReader(new FileReader(url))
    int j=0;
    while ((ligne=br.readligne)!=null){
    j++;
    System.out.println("pourcentage : "+j/i+"%");
    }
    Pour la méthode octet je ne sais pas, mais c'est sans doute la meilleur.

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Oui enfin, lire le fichier deux fois juste pour pouvoir afficher une barre de progression la deuxième fois... Bon, il y a des cas où ça se justifie, mais c'est pas en général -_-°.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [Débutant] Calculer le pourcentage d'un traitement de fichier csv
    Par slim025 dans le forum C#
    Réponses: 3
    Dernier message: 20/05/2015, 18h33
  2. Réponses: 1
    Dernier message: 13/03/2015, 14h58
  3. Pourcentage copy d'un fichier de 20GB [VB.Net]
    Par pISQUIK dans le forum VB.NET
    Réponses: 19
    Dernier message: 07/11/2011, 11h54
  4. fichier mappé en mémoire
    Par WinBernardo dans le forum Delphi
    Réponses: 7
    Dernier message: 01/12/2006, 09h38
  5. [Algorithme] Pourcentage de similitude de 2 fichiers
    Par Magy_4 dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 08/11/2002, 22h42

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