GROS FICHIER

rimkazz Messages postés 25 Date d'inscription samedi 19 février 2005 Statut Membre Dernière intervention 30 mai 2006 - 6 mars 2006 à 11:37
rimkazz Messages postés 25 Date d'inscription samedi 19 février 2005 Statut Membre Dernière intervention 30 mai 2006 - 6 mars 2006 à 20:29
Bonjour mon problème est le suivant.
je dispose d'un gros fichier txt contenant des nom prenom...séparé par des ;
je veux donc traiter se fichier et supprimer des ligne où le prénom ne me convient pas.Les prénoms sont issu dune liste a part en txt pareil.
Comment faire ?sachant que les fichiers font plus de 50mo ,utilisé les tokens et stocké ca virtuellement me parait gros pour en plus subir un grs traitement...

6 réponses

super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
6 mars 2006 à 13:54
t as qu a lire par morceaux ton fichier et stocker ca dans des StringTokenizer.
apres fé un test de ram pour savoir combien ca te prend exactement
++ Toinou
0
rimkazz Messages postés 25 Date d'inscription samedi 19 février 2005 Statut Membre Dernière intervention 30 mai 2006
6 mars 2006 à 14:45
ouai mais je sais pas comment faire ce que tu viens de dire
0
rimkazz Messages postés 25 Date d'inscription samedi 19 février 2005 Statut Membre Dernière intervention 30 mai 2006
6 mars 2006 à 14:45
enfin pour la taille d'une ligne celà correspondrai a toute les autre?
0
rimkazz Messages postés 25 Date d'inscription samedi 19 février 2005 Statut Membre Dernière intervention 30 mai 2006
6 mars 2006 à 16:58
Voila mon code ca marche mais c'est lent comment pourrais je l'améliorer???
Merci

public class Test{
static int timecompt;
public static void main(String[] args){

StringBuffer b=new StringBuffer(50);
StringBuffer b1=new StringBuffer(50);
Fiche temp=new Fiche();
String []tab=new String[8];
String prenom="";
for(int i=0;i<8;i++)
{
tab[i]=new String();
}
boolean ok=false;
try{
RandomAccessFile reader
=new RandomAccessFile("fichier.csv","r");
RandomAccessFile reader1
=new RandomAccessFile("l.txt","r");
FileWriter writer = new FileWriter("nomFichier.txt");
reader.seek(0);
reader1.seek(0);
int u=0;
int ch1=1;

while(ch1!=-1)
{
ch1=reader1.read();
b1.append((char)ch1);

if(ch1==(int)';')
{
prenom=b1.toString();
b1=new StringBuffer(50);


System.out.print(prenom);
while(1==1)
{
int ch=reader.read();

b.append((char)ch);

if(ch==(int)';')
{
tab[u]=b.toString();
u++;
b=new StringBuffer(50);

}

if(ch==-1)
{
reader.seek(0);
break;
}

if(u==7)
{
if(tab[2].equals(prenom))
{
for(int i=0;i<8;i++)
writer.write(tab[i]);
}
writer.write('\n');
u=0;

//writer.write((char)ch);
}
}
}
}
reader.close();
writer.close();
}


catch(IOException e)
{
e.printStackTrace();
}
for(int i=0;i<8;i++)
System.out.print(tab[i]);

}
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
6 mars 2006 à 19:11
le ramdomaccess est extremment lent je pesne qu'il vaut presque mieu de stocker ton fichier dans un tableau
0
rimkazz Messages postés 25 Date d'inscription samedi 19 février 2005 Statut Membre Dernière intervention 30 mai 2006
6 mars 2006 à 20:29
Que pense tu de l'utilisation des threads jyconnais rien d'ailleur jai justre compris que je pouvais diviser le travail...
0
Rejoignez-nous