Revenir au début d'un BufferedReader

Résolu
madeinloveyou Messages postés 71 Statut Membre -  
madeinloveyou Messages postés 71 Statut Membre -
Bonjour,

voici mon code :
=> String s = /home/gaelle/Oligo.fasta

BufferedReader BR = new BufferedReader(new FileReader(s));
if(BR.readLine().substring(0,1).equals(">")){
...
}

à cause du if je lis la première ligne, mais j'en ai encore besoin après !!
Comment revenir à la première ligne ?
J'ai essayé de mettre un BR.mark() puis reset(), mais sans succès ...
en plus je ne sait quel entier mettere pour mark ??
Configuration: Linux
Epiphany 2.14

6 réponses

  1. sandul Messages postés 4013 Statut Membre 723
     
    (Re) salut Gaëlle,

    à cause du if je lis la première ligne, mais j'en ai encore besoin après !!
    Comment revenir à la première ligne ?


    Tu conserves la ligne dans une variable locale.
    Exemple:
    String curLine = null;
    while ((curLine = br.readLine()) != null) {
    	// ici ton code testant curLine
    }

    Remarque générale: essaie de respecter la convention de nommage Java (nom des variables commençant par minuscule).

    ++
    0
  2. madeinloveyou Messages postés 71 Statut Membre
     
    Le problème c ke j'ai besoin de savoir par quel caractère le fichier commence !!
    en fonction de ca j'effectue différent traitement !!!
    0
  3. sandul Messages postés 4013 Statut Membre 723
     
    Ben tu testes la première ligne... ^^
    // lire la 1ère ligne
    String curLine = br.readLine();
    if (curLine != null) {
    	if (curLine.startsWith(">") {
    	// ...
    		while ((curLine = br.readLine()) != null) {
    			// ici ton code utilisant curLine
    		}
    	} else {
    	// ...
    	}
    }

    ++
    0
  4. madeinloveyou Messages postés 71 Statut Membre
     
    en fait g fait autre chose qui marche :

    // je créer un buff pour ensuite enregistrer le premier caractère
    BufferedReader buffR = new BufferedReader(new FileReader(s));
    String auxline = buffR.readLine().substring(0,1);
    buffR.close();
    // je le ferme, du coup après je peut utiliser un autre ... et j'ai donc ma fameuse 1ère ligne !! =)
    java.sql.Statement stmt = connexion.createStatement();
    BufferedReader BR = new BufferedReader(new FileReader(s));

    String line = BR.readLine();
    int i = 1;
    int index [] = new int [3];
    if(auxline.equals(">")){

    while ((line = BR.readLine()) != null){
    ....

    Merci com même !!!
    a++
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. sandul Messages postés 4013 Statut Membre 723
     
    ^^ Il n'y a pas de quoi...

    Il serait bien de lire les réponses & d'essayer de comprendre ce que l'autre te dit. Ton code de remplacement n'est pas optimisé (il ouvre 2 fois le stream).

    Mais bon, je crois demander trop là...
    0
  7. madeinloveyou Messages postés 71 Statut Membre
     
    oui je c coté optimisation c pa top !!!
    en effet c peu etre bcp demandé ^^ ....mdr
    0