S
Shlyakh
Guest
Ich habe zwei Klassen, die eine heißt Test1, in welcher ich eine Klasse Reader instantiiere.
Die Klasse Reader erbt von java.io.BufferedReader (siehe Code). Ich will nun die Methode readLine() , die ich ja von BufferedReader erbe, überschreiben.
Ich meine, dass es so irgendwie falsch ist, denn mein Korpus, den ich ja einlesen will, wird falsch eingelesen - es fehlt dort so etwa jede zweite Zeile.
Weiß jemand, wie man readLine() anders überschreiben könnte? Ich habe zudem im Netz keine gescheite Doku zur readLine-Klasse gefunden.
import java.io.*;
import java.util.regex.*;
Die Klasse Reader erbt von java.io.BufferedReader (siehe Code). Ich will nun die Methode readLine() , die ich ja von BufferedReader erbe, überschreiben.
Ich meine, dass es so irgendwie falsch ist, denn mein Korpus, den ich ja einlesen will, wird falsch eingelesen - es fehlt dort so etwa jede zweite Zeile.
Weiß jemand, wie man readLine() anders überschreiben könnte? Ich habe zudem im Netz keine gescheite Doku zur readLine-Klasse gefunden.
Code:
import java.io.*;
class Test1{
public static void main(String[] argv){
BufferedReader sbr = null;
String readertype="korpusformat";
try{
if(readertype.equals("korpusformat")){
sbr = new Reader(new FileReader("meinKorpusDatei")); }
for(String line = sbr.readLine();sbr != null;line=sbr.readLine()){
System.out.println(line);
} sbr.close();
}catch(IOException e){}
}
}
import java.util.regex.*;
Code:
class Reader extends BufferedReader
{
public Reader(FileReader fr){
super (fr);
}
public String readLine() throws IOException{
String s1=null;
//Hier wil ich dann einen String s1 erzeugen, indem ich mit super die readlineMethode aufrufe, und dann aber einige Änderungen durchführe.
try{
s1=super.readLine().replaceAll("\\s+", " ").replaceAll("[0-9]+_[0-9]+", "").replaceAll("_", "").trim().split("\\s+")[0];
}catch(Exception e){}
return s1;
}
}