Reader rdr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(rdr);
String s;
s = br.readLine();
br.close();
Scanner sc = new Scanner(System.in);
s = sc.nextLine();
System.out.print(s);
ho notato che se chiudo il BufferedReader
, non sarò in grado di inserire input da tastiera più, come System.in
è in qualche modo chiuso. C'è comunque che posso mantenere br.close()
(ne ho bisogno per cancellare un file) e quindi aggiungere più input dalla tastiera?Chiusura BufferedReader e System.in
eliminare quale file? BufferedReaders è pensato per essere associato a un particolare flusso di input. Una volta che li hai chiusi non puoi riutilizzarli. – soulcheck
In realtà * veramente * non dovrebbe essere necessario chiudere 'br' per eliminare un file. –
Se si sta leggendo da un file e si utilizza un 'BufferedReader' fino ad un certo punto e poi si chiude' BufferedReader' e poi si legge di più dal flusso di file, si perderanno alcuni byte. Questi byte sono consumati dal lettore bufferizzato (per buffer). Dovrai trovare un altro modo. Perché è necessario passare da una sottoclasse di Reader a uno scanner? Alcune restrizioni API? In entrambi i casi, puoi fare le cose in modo diverso, ad esempio utilizzando un 'RandomAccessFile' e/o una sottoclasse di Scanner personalizzata che può fare anche cose Reader. –