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

Format d'échange (XML, JSON...) Java Discussion :

Lire ligne précise fichier XML


Sujet :

Format d'échange (XML, JSON...) Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de pendoRa
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 317
    Par défaut Lire ligne précise fichier XML
    Bonjour,
    après avoir lu la très complète FAQ "Java - Flux & Fichiers"
    Et d'après ce code, qui m'interessai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    String filePath = "g:\\fichier.txt";
     
    Scanner scanner=new Scanner(new File(filePath));
     
    // On boucle sur chaque champ detecté
    while (scanner.hasNextLine()) {
        String line = scanner.nextLine();
     
        System.out.println(line);
    	//faites ici votre traitement
    }
     
    scanner.close();
    J'arrive à lire toutes les lignes, mais comment faire si je veux seulement lire la ligne 8 de mon fichier ? et si possible sans les balises? ( c'est une URL que je souhaite récupérer )

    Merci a vous.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 28
    Par défaut
    Si tu veux lire la ligne 8 pourquoi ne pas essayer :

    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
     
    String filePath = "g:\\fichier.txt";
     
    Scanner scanner=new Scanner(new File(filePath));
     
    int i=0;
    while(i<7 && scanner.hasNextLine()){
          scanner.nextLine();
     
           i++;
    }
     
        String line = scanner.nextLine();
     
        System.out.println(line);//lira la ligne 8
     
     
     
    scanner.close();

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 299
    Par défaut
    Il faudrait voir un exemple de ton fichier, mais tes balises te permettront sûrement de pouvoir identifier facilement la partie du fichier à extraire en utilisant les méthodes de String (contains, startWith, split, ... ...).
    Une fois la chaine extraite, tu peux quitter ton while avec un break.

  4. #4
    Membre éclairé Avatar de pendoRa
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 317
    Par défaut
    Mon fichier XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0" encoding="UTF-8"?>
    <java version="1.6.0_20" class="java.beans.XMLDecoder">
     <object class="javax.swing.JTextField">
      <void property="columns">
       <int>60</int>
      </void>
      <void property="text">
        <string>C:\Users\(utilisateur)\documents\vlc\vlc.exe</string>
    </void>
    </object>
    </java>
    Sinon je n'avais pas pensé à la boucle, celà fonctionne parfaitement désormais, merci. Me manque plus qu'à stocker cette ligne dans une variable.

  5. #5
    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
    t es au courant qu'avec du xml, tu n'a aucune garantie que ca ne sera pas sur une autre ligne demain?

  6. #6
    Membre éclairé Avatar de pendoRa
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 317
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    t es au courant qu'avec du xml, tu n'a aucune garantie que ca ne sera pas sur une autre ligne demain?
    Non, j'ai poser la question auparavant ici sur Dev.com et ont m'a orienté vers du XML alors... je ne sais pas.
    Et tu sais, ce n'est qu'un petit projet pour mon examen final. Il n'ira pas en prod.

  7. #7
    Membre chevronné
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Par défaut
    Come tchize_ a dit parfois ton flux xml (fichier) n'a qu'une seule ligne (pas de retour de ligne)

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 28
    Par défaut
    oui avec ma methode c'est surtout du temporaire pour tester le reste de ton code...sinon si tu cherche quelque chose en particulier tu peut faire un petit bout de code qui ressemble à çà (admetons que tu cherche le contenu de init)

    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
     
    String ligne="";
    int entier=0;
    while(scanner.hasNext())
    {
      ligne=scanner.nextLine();
    /*si la balise est <init>*/
      if(ligne.substring(ligne.indexOf('<'), ligne.indexOf('>') +1).equals("<init>"))
        {
                /*dans ce cas on recupere l'interieur des balises*/
                entier= Integer.parseInt(ligne.substring(ligne.indexOf('>') + 1,ligne.lastIndexOf('<')));
                break;
        }
     
    }
     
    return entier;

  9. #9
    Membre éclairé Avatar de pendoRa
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 317
    Par défaut
    Décidement je n'arrive pas à enlever les balises.
    J'ai une exception de thread, enfin je crois, quand je demande à mon appli (via mon GUI) d'aller recupérer la ligne via la fonction que tu m'a conseillé, il me dit dans le debugger "AWT-EventQueue-0](Suspended (exception StringIndexOutOfBoundsException))
    EventDispatchThread.run() line : not available.
    Je ne sais pas trop.. dois-je afficher mon bout de code concerné ? Car la machine sur laquelle je travail n'est pas sur le réseau, difficile d'afficher le code sans. ( ni clé usb pour transferer )
    Merci

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

Discussions similaires

  1. lire dans un fichier xml depuis une tâche ant
    Par wildmary dans le forum ANT
    Réponses: 7
    Dernier message: 03/08/2009, 12h51
  2. problème avec .jar : lire depuis un fichier xml
    Par ALAE4000 dans le forum Format d'échange (XML, JSON...)
    Réponses: 13
    Dernier message: 28/04/2008, 10h38
  3. Lecture d'une ligne précise fichier txt
    Par House MD dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/11/2007, 15h20
  4. supprimer ligne de fichier xml
    Par wajdiisi2007 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 22/08/2007, 17h09
  5. Comment lire dans un fichier XML?
    Par yosthegost dans le forum Delphi
    Réponses: 5
    Dernier message: 29/05/2006, 17h50

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