Datei Splitten und Parsen

Existenzhass

Mitglied
Hallo,

ich habe ein kleines Problem mit splitten einer Datei, genauer gesagt... Mit der Umwandlung. Ich habe versucht das Programm zu debuggen, aber es hatte nicht viel gebracht. Ich habe nähmlich herausbekommen, dass das Program bei Parsen hängen bleibt. Ich untersuche das Programm seit mehreren Tagen, aber mir fällt nichts auf, was da ein Problem sein könnte. Es würde mich sehr freuen, wenn jemand mir hefen könnte, denn ich bin nurnoch am verzweifeln. :D Bis jetzt habe ich dies hier entwickelt:
Java:
public void setInput() throws ParseException {//LogFile einlesen und splitten

		try {
			BufferedReader br = new BufferedReader(new FileReader(new File("apache.log")));//apache log einlesen
			String line = null;
			
			while ((line=br.readLine())!=null){
				try{

					slc.lineCount++;//line count
										
					String[] logEntry 	= line.split(" ");//splitt wenn: " "
					InetAddress ip 		= InetAddress.getByName(logEntry[0]);
					logc.ip 			= ip;//ip herausnehmen

					String ident 		= logEntry[1];
					logc.ident			= ident;//ident herausnehmen

					String benutzer		= logEntry[2];
					logc.benutzer		= benutzer;//benutzer herausnehmen

					DateFormat df		= new SimpleDateFormat("[d/MMMM/yyyy:H:m:s Z]");
					Date date 			= df.parse(logEntry[3] + logEntry[4]);
					logc.date			= date;//Datum herausnehmen

					String method		= logEntry[5];
					logc.method			= method;// \POST || \Get

					String post			="\"POST";
					String get 			="\"GET";
					
					if(logc.method == post){
						slc.postCount++;
					}else if(logc.method == get){
						slc.getCount++;
					}else
						slc.unknownCount++;
					
					entry = ip + ident + benutzer + date + method;
					
					logFile.add(entry);
					System.out.println(entry);
					
				}catch(java.text.ParseException e){
					System.err.println("Fehler beim Umwandeln!");
				}
			}

		} catch (FileNotFoundException e) {
			System.err.println("Datei konnte nicht gefunden werden!");
			e.printStackTrace();
		} catch (IOException e) {
			System.err.println("Fehler beim Einlesen!");
			e.printStackTrace();
		}

Vielen Dank erst mal!
 

eRaaaa

Top Contributor
Ich habe nähmlich herausbekommen, dass das Program bei Parsen hängen bleibt.

Du hast ja richtig erkannt dass du das Datum auch splittest, weil da zwischen ebenfalls ein Leerzeichen ist und fügst beide Strings zusammen, du solltest hier allerdings das Leerzeichen dann beim Parsen wieder mit einfügen :

Java:
df.parse(logEntry[3] + " " +logEntry[4]);

Und Strings vergleicht man mit equals
Java:
  if(logc.method == post){
                        slc.postCount++;
                    }else if(logc.method == get){
                        slc.getCount++;
->
if(post.equals(logc.method){ ....

[OT]*nämlich ....[/OT]
 

eRaaaa

Top Contributor
Dann wäre es jetzt doch mal Zeit uns zu zeigen wie dein Apache Logfile aufgebaut ist...Und wie die Fehlermeldung lautet
 

Neue Themen


Oben