Si alla fine ho risolto sistemando meglio la lettura. Ora avrei un altro problema, legato all' uso dei metodi mark() e reset() della classe BufferedReader. Il primo prende un intero....ma ho un' eccezione di marcatura invalida. Sorvolando su quello che fa il codice la uso qui:
In sostanza ho una variabile position che incremento con la lunghezza della stringa corrente per sapere a che punto sono arrivato nella lettura. Ammesso che sia giusto.
codice:
while(!(line.equals(" <drug-interaction>"))){ //Finchč non inizia un nuovo drug devo controllare tutti i target
line=reader.readLine();
position=position+line.length();
if((line.equals(" <targets>")))
{
line=reader.readLine();
position=position+line.length();
reader.mark(position);
start =line.indexOf("partner")+9; //indici sottostringa che contiene id del target partner
end=line.indexOf(">")-1;
String partner=line.substring(start,end);
System.out.println("partner has number "+partner+'\n');
.
.
.
.
.
Compilando ed eseguendo ho:
codice:
10890
java.io.IOException: Mark invalid
at java.io.BufferedReader.reset(BufferedReader.java:505)
at Prova.main(Prova.java:181)
>Exit code: 0
Dove quel valore č position e l' eccezione č proprio alla chiamata reset.
Come mai?