Je travaille dans un petit bureau, j'ai une application, elle génère un gros fichier texte avec 14000 lignes;Comment puis-je filtré avec les meilleures performances? (JAVA)
après chaque génération je dois le filtrer et c'est vraiment ennuyeux;
Je veux écrire une application avec java jusqu'à ce que je puisse la gérer le plus rapidement possible.
Aidez-moi s'il vous plaît; J'ai écrit une application avec scanner (bien sûr avec de l'aide :)) mais ce n'est pas bon car c'était très lent;
Par exemple, il est mon fichier:
SET CELL:NAME=CELL:0,CELLID=3;
SET LSCID:NAME=LSC:0,NETITYPE=MDCS,T32=5,EACT=FILTER-NOFILTER-MINR-FILTER-NOFILTER,ENSUP=GV2&NCR,MINCELL=6,MSV=PFR,OVLHR=9500,OTHR=80,BVLH=TRUE,CELLID=3,BTLH=TRUE,MSLH=TRUE,EIHO=DISABLED,ENCHO=ENABLED,NARD=NAP_STLP,AMH=ENABLED(3)-ENABLED(6)-ENABLED(9)
et je veux cette sortie (filtre :)
CELLID : 3
ENSUP : GV2&NCR
ENCHO : ENABLED
MSLH : TRUE
------------------------
Count of CELLID : 2
quelle solution est la meilleure et la plus rapide que l'autre?
c'est mon code source:
public static void main(String[] args) throws FileNotFoundException {
Scanner scanner = new Scanner(new File("i:\\1\\2.txt"));
scanner.useDelimiter(";|,");
Pattern words = Pattern.compile("(CELLID=|ENSUP=|ENCHO=)");
while (scanner.hasNextLine()) {
String key = scanner.findInLine(words);
while (key != null) {
String value = scanner.next();
if (key.equals("CELLID="))
System.out.print("CELLID:" + value+"\n");
//continue with else ifs for other keys
else if (key.equals("ENSUP="))
System.out.print("ENSUP:" + value+"\n");
else if (key.equals("ENCHO="))
System.out.print("ENCHO:" + value+"\n");
key = scanner.findInLine(words);
}
scanner.nextLine();
}
}
Merci beaucoup en effet ...
vous devez poster le code que vous utilisez actuellement, afin que les gens puissent voir pourquoi il est si lent – mportiz08
Quelle est la « logique métier » ici? Qu'est-ce que vous essayez de faire? ce n'est pas clair à partir de l'entrée et de la sortie. –
Pourquoi Java spécifiquement? Je veux dire que c'est correct mais peut ne pas convenir à votre objectif, comme Paul Tomblin l'a déjà signalé. –