Ciao ragazzi,
Mi sono fatto una classe di gestione dell'input il problema è che non riesco a fare delle chiamate al metodo di lettura del buffer in sequenza.
In pratica mi legge solo la prima lettura e poi mi salta le altre.
Ho notato che chiudendo il buffer e reinzializzandolo il problema si risolve.
Il mio problema sta nel mettere la reinizializzazione del buffer all'interno della classe dell'input.
Ho provato in questo modo
Ma mi rimanda un NullPointerException in quanto non riesce a reinizializzare l'oggetto dal debug ho visto che all'interno dei metodi read quando buf e sin sono null mi salta l'if che richiama il costruttore di classe.Codice PHP:public class Input{
private InputStreamReader sin;
private BufferedReader buf;
public Input(){
sin = new InputStreamReader(System.in);
buf = new BufferedReader(sin);
}
public String readLine(){
boolean flag = false;
String arg = "";
while(!flag){
try{
if(buf == null){
new Input();
}
arg = buf.readLine();
flag = true;
finalize();
}catch(IOException ex){
System.err.println(ex);
}
}
return arg;
}
public int readInt(){
boolean flag = false;
int arg = 0;
while(!flag){
try{
if(buf == null){
new Input();
}
arg = buf.read();
flag = true;
finalize();
}catch(IOException ex){
System.err.println(ex);
}
}
return arg;
}
public void finalize(){
try{
sin.close();
buf.close();
}catch(IOException ex){
System.err.println(ex);
}
sin = null;
buf = null;
}
}
Come posso fare?
Ciao


Rispondi quotando
