Pointeur sur Fichier. [Résolu]

Branubiba - 10 avril 2013 à 14:15 - Dernière réponse :  Branubiba
- 10 avril 2013 à 19:23
Bonjour (Me Revoila)
Encore une fois je sollicite votre Aide cette fois sur les Pointeurs
J'ai un fichier de ce type..
Ligne 1
Ligne 2
Ligne 3
.(Jusqu'à
.(.)
Ligne 200
Mon programme est supposé lire chaque 50 lignes les mettre dans une liste et les traitées
Mon problème se situe au niveau du pointeur sur les prochain 50 ligne .. (Ma bloque repete l'exaction à partir des 50 premier quant ma boucle se ré-execute)
et voici mon code
Pour la fonction de lecture
public static int lireFichier(String nomFichier ,String cheminSortie, String Imgsource){
int Nombre=0;
BufferedReader fluxEntree=null;
String ligneLue;
List<String> lignes = new ArrayList<String>();		
try{
RandomAccessFile Mf = new RandomAccessFile(nomFichier, "rw");/Pas encore utilisé apparement c'est le moins pour l'accés au fichier

fluxEntree = new BufferedReader(new FileReader(nomFichier));

LineNumberReader lineNumber = new LineNumberReader(new FileReader(nomFichier));
ligneLue = lineNumber.readLine();
int i = compterLignes(nomFichier);/* Fonction qui compte le nombre de ligne que contient le fichier	*/
int compteur=0;
                 /* Creation de la liste de 50 lignes */
for(int j=1;j<=(i/50+1);j++){
               // int compteur=0;
                System.out.println("Voici le  traitement de liste:"+j);
                System.out.println("************-"+j+"-************");
                while(compteur < (j*50>i?(50-(j*50-i)):50)){   
                	compteur ++;
                    lignes.add(ligneLue);
System.out.println("ligne : "+ligneLue+" -- "+lineNumber.getLineNumber());
ligneLue = lineNumber.readLine();
                }
               
                System.out.println("************************");
               
                //Traitement de la liste 			
          Nombre= Generer(lignes,cheminSortie,Imgsource);// methode qui fonctionne 
          System.out.println("***********FIN - Traitement de la liste"+j+"*************");           
}		
}		
catch(IOException exc){
exc.printStackTrace();
}	
try{		
fluxEntree.close();
}
catch(IOException e){
e.printStackTrace();
}		
System.out.println("taille : "+lignes.size());
return Nombre;


}

toute aide est la bienvenue.. merci d'avance
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
cs_jojolemariole 519 Messages postés mercredi 21 mars 2007Date d'inscription 19 décembre 2016 Dernière intervention - 10 avril 2013 à 15:48
3
Merci
Salut,

Dans ton code actuel, tu ouvres un accès en lecture/écriture la première fois :
RandomAccessFile Mf = new RandomAccessFile(nomFichier, "rw");


Mais tu ne le fermes pas apparemment. Bien entendu, la deuxième fois, il te refuse l'accès en écriture, n'ayant pas fermé le premier.

Je n'ai pas regardé en détail, je peux me tromper mais encore une fois : tu nous aiderais beaucoup en nous donnant la stack trace de l'exception.

La stack trace nous est très utile pour vous aider !

Merci cs_jojolemariole 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

Commenter la réponse de cs_jojolemariole
0
Merci
Merci pour ta reponse ..
J'etais assez IDiot de Pas vider mon Mon ArrayList a la fin de l'execution merci de m'avoir mis sur la Piste..
Commenter la réponse de Branubiba

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.