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

API standards et tierces Java Discussion :

Convertir un fichier en String


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Par défaut Convertir un fichier en String
    Bonjour,
    je cherche un moyen rapide de convertir le contenu d'un fichier en String (dans le but de l'inclure dans un fichier XML). Pour l'instant je fais de cette manière :

    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
    20
    public static String affiche(String nomFichier) {
            String retour = "";
     
        	try {
                FileReader reader = new FileReader(nomFichier);
                int lu;
                char c;
                do {
    <div style="margin-left:40px">                // on lit un caractère sous forme d'un entier:
                    lu = reader.read(); 
                    if (lu != -1) { // si on est pas à la fin du fichier
                       <div style="margin-left:40px"> c = (char) lu;
                        retour += c;</div>}</div>
                } while (lu != -1); // tant que l'on est pas à la fin du fichier
                reader.close();
                return retour;
            } catch (Exception e) {
            	return "";
            }
        }
    mais cela met 30 secondes pour un fichier de 45ko. Si quelqu'un avait des pistes pour aller plus vite, ca m'aiderait beaucoup.
    D'avance merci.

  2. #2
    Membre expérimenté Avatar de fumiste972
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Février 2003
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Février 2003
    Messages : 228
    Par défaut
    Slt,

    pour commencer tu pourrais utiliser la classe BufferedReader pour lire ligne par ligne plutot que par caracteres.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    BufferedReader buf = new BufferedReader(new FileReader(nomFichier));
    String line = buf.readLine();
    Maintenant si tu veux ke ca aille plus vite je ne pense pas qu'on puisse lire plus vite que ca. Les traitement de fichier restent en general assez longs.

  3. #3
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    je pense que pour concaténer ce que tu lis tu devrais utiliser un StringBuffer (en 1.4 en tout cas), ya un autre type d'objet en 1.5 mais j'ai oublié le nom exact (genre StringBuilder)

    Apres tu le transforme en String si tu veux ...

  4. #4
    Membre chevronné Avatar de NeptuS
    Profil pro
    Inscrit en
    Août 2005
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 392
    Par défaut
    tu peux tout aussi bien utiliser un Vector<String>, très pratique aussi.

  5. #5
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Citation Envoyé par NeptuS
    tu peux tout aussi bien utiliser un Vector<String>, très pratique aussi.
    Pour la performance il vaut mieux éviter Vector qui est Thred-safe et plutôt utiliser une ArrayList .
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  6. #6
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Par défaut StringBuffer
    Merci pour vos réponses, avec le StringBuffer c'est quasi instantané !

    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
    20
    21
    22
    23
    public static String afficheRapide(String nomFichier) {
            StringBuffer retour = new StringBuffer();
     
        	try {
                FileReader reader = new FileReader(nomFichier);
                int lu;
                char c;
                do {
    <div style="margin-left:40px">// on lit un caractère sous forme d'un entier:
                    lu = reader.read(); 
                    if (lu != -1) { // si on est pas à la fin du fichier
                        <div style="margin-left:40px">c = (char) lu;
                        retour.append(c);</div>}</div>                
                } while (lu != -1); // tant que l'on est pas à la fin du fichier
                reader.close();
                return retour.toString();
            } catch (FileNotFoundException e) {
                System.out.println("Impossible de lire le fichier "+nomFichier+" ! " +e);
                return "";
            } catch (IOException e) {
            	System.out.println("Erreur de lecture !" +e);
            	return "";
            }

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

Discussions similaires

  1. Convertir un fichier XML en String
    Par soukaina123 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 30/06/2014, 14h16
  2. comment convertir un fichier xml en tableau de string (java)
    Par l'indien dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 27/02/2006, 21h00
  3. Réponses: 2
    Dernier message: 17/08/2004, 14h27
  4. [exe] convertire un fichier java en executable?
    Par Toosek dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 27/01/2004, 10h49
  5. [] Convertir un fichier word en pdf
    Par SpaceFrog dans le forum VBA Word
    Réponses: 7
    Dernier message: 06/12/2002, 15h27

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