CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Tokenizer en java...

mbleu
mbleu
Niveau 6
29 octobre 2003 à 19:06:24

Voila je sais pas si qqn pourra m´aider mais voila:
Je voudrais parcourir un fichier texte et stocker au fur et a mesure dans un tableau
Le pb c que e sais pas passer a la deuxieme ligne du document....

StringTokenizer st = new StringTokenizer(br.readLine()," " );

for(compteur=0;compteur<=st.countTokens();compteu
r++){

valeurs[compteur]=Integer.parseInt(st.nextToken
());
}

JeanYvesYves
JeanYvesYves
Niveau 10
29 octobre 2003 à 19:17:59

en tant que programmeur de C++, ne connaissant pas Java, je V essayer de répondre tout de meme.

A mon avis, c´est ta fonction
readline() qui charge une ligne.
Si tu fais un 2e readline(), ça chargera la suivante, car en général, il y a implicitement un pointeur de fichier ( un curseur), donc ça lira dans l´ordre.
Essaie de placer le readline() dans un for
comme ça il procedera sur toutes les lignes.

guedelmalin
guedelmalin
Niveau 1
29 octobre 2003 à 20:22:07

Il faut que tu mettes tes trois ligne dans une boucle for avec comme parametre de sortie un test de fin de texte,
car a chaque fois que l´interpreteur lit br.readline il change de ligne et tu dois cree un nouveau StringTokenizer pour chaque ligne ( c´est ce que fait ta premiere ligne)

guedelmalin
guedelmalin
Niveau 1
29 octobre 2003 à 20:26:56

un conseil pour java, tape toi la doc officiel entiere ou du moins les classes les plus utilisees, car ca t´eviteras de cree des fonctions qui existe deja et qui ralentisse ensuite l´execution

Diwi
Diwi
Niveau 5
30 octobre 2003 à 10:08:15

JY² à raison,
ici tu ne pointes sur le texte qu´une seule fois ( au début), alors que ton readLine() doit être dans le for

Tiens, voila un petit programme que lit dans un fichier et ecrit dans l´autre en Java :

//Nouveau fichier tot.txt et tit.txt sous c:
File fichierAncien = new File("c:/tit.txt");
File fichierFutur = new File("c:/tot.txt");
//si le fichier existe, on le supprime
if ( fichierFutur.exists() ) fichierFutur.delete();
//Essaie de creation du fichier, en cas de probleme, on le dit
try { fichierFutur.createNewFile(); } catch ( Exception e ) { System.out.println("Erreur pour la création du nouveau fichier"); }

//En cas de probleme, on catch l´erreur
try {
//Mise en lecture et ecriture des fichiers
FileReader fr = new FileReader(fichierAncien);
FileWriter fw = new FileWriter(fichierFutur);

//Mise en place d´un buffer lecture et ecriture sur les fichiers
BufferedReader input = new BufferedReader(fr);
BufferedWriter output = new BufferedWriter(fw);
//On lit la ligne
String ligneLue = input.readLine();
//Tant que la ligne lue n´est pas nulle, on continue
while ( ligneLue ! = null) {
//On ecrit la ligne lue dans le fichier a ecrire
output.write(ligneLue);
//On cree une nouvelle ligne
output.newLine();
//On lit une nouvelle ligne du fichier a lire
ligneLue = input.readLine();
}
//On ferme les buffer
output.flush();
output.close();
input.close();
} catch(IOException ioe) {
System.out.println("erreur : " + ioe ) ;
}
}

Diwi
Diwi
Niveau 5
30 octobre 2003 à 10:12:37

J´ai pas testé le prog ( j´avais un prog testé avant, j´ai repris le bout et reformulé un peu) mais normalement il marche, si ca marche pas, donne moi l´erreur, je corrigerais ou si tu corriges, mais la correction ici, ca pourra toujours servir pour d´autres.

Sinon, pour récupérer les données du fichier texte dans un String, tu n´as juste qu´a recuperer le ligneLue à la place de output.write(ligneLue);

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment