Witajcie, po raz kolejny po proszę was o pomoc:
Poniżej przedstawiona klasa w założeniu ma się zając wczytanie i obróbką pliku.
1.Metoda "Parser" powinna wczytywać zawartość pliku **.log * i przekazywać jego zawartość do LinkedList "wDane". No i w sumie tak się dzieje, jednak problem się pojawia gdy chcę użyć tej listy tudzież iteratora w metodzie "Dzialaj". Otóż gdy próbuję przejść do następnego elementu poprzez "wIter.Next();" nic się nie dzieje i dostaję listę błędów.
- RegExp - otóż chciałem skorzystać z wyrażeń regularnych żeby za ich pomocą wyciągnąć z listy "wDane" takie, które w wierszy będą miały "DEC" jednak kompletnie mi to nie wychodziło, użyłem metody "lookingAt" tak jak jest przedstawione w tutorialu oracle ale nie działa mi to. To znaczy w wierszy jest to słowo ale dostaje komunikat "false".
Jeśli coś jest niejasne proszę pytać. Jeśli macie jakieś pomysły jak to uprościć albo inaczej wykonać też będę wdzięczny, w ogóle będę wdzięczny za każdą pomoc.
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.*;
/**
*
* @author Kamui
*/
public class Parser {
final static List<String> wDane = new LinkedList<String>();
final static List<String> cDane = new LinkedList<String>();
static ListIterator<String> wIter = wDane.listIterator();
static Iterator<String> cIter = cDane.listIterator();
public static void Parser(String path) {
StringBuilder sb = new StringBuilder();
String eachLine = null;
if (path != null) {
FileReader fr = null;
try {
File file1 = new File(path);
fr = new FileReader(file1);
BufferedReader br = new BufferedReader(fr);
do {
eachLine = br.readLine();
if (eachLine != null) {
sb.append(eachLine);
sb.append("\n");
wDane.add(eachLine);
}
}
while (eachLine != null);
System.out.println(sb.toString());
fr.close();
}
catch (IOException ex) {
Logger.getLogger(Parser.class.getName()).log(Level.SEVERE, null, ex);
}
finally {
}
Dzialaj(wDane);
System.out.print(wDane);
}
}
public static void Dzialaj(List L) {
boolean dziala=false;
wIter.next();
String k= wDane.get(1);
boolean t=wIter.hasNext();
String REGEX = "DEC";
String INPUT=wIter.toString();
pattern = Pattern.compile(REGEX);
matcher = pattern.matcher(INPUT);
dziala=matcher.lookingAt();
String s=new Boolean(dziala).toString();
System.out.println(s);
System.out.println(t);
System.out.println(k);
}
private static Pattern pattern;
private static Matcher matcher;
}