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
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;
}
}
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.
Come posso fare?
Ciao