Ho un'applicazione che legge e scrive righe di testo usando un BufferedReader
e PrintStream
avvolgendo il InputStream
e OutputStream
di un oggetto java.net.Socket
sincrono. Quindi, posso semplicemente usare i metodi BufferedReader.readLine()
e PrintStream.println()
e lasciare che la libreria Java divida l'input in righe e formatta l'output per me.Java: canale di I/O asincrono per le linee di lettura e scrittura
Ora voglio sostituire questo IO sincrono con IO asincrono. Quindi ho esaminato AsynchronousSocketChannel
che consente di leggere e scrivere byte in modo asincrono. Ora, mi piacerebbe avere classi wrapper in modo che io possa leggere/scrivere in modo asincrono usando le stringhe.
Non riesco a trovare tali classi wrapper nella libreria Java. Prima di scrivere la mia implementazione, volevo chiedere se ci sono altre librerie che consentono di avvolgere AsynchronousSocketChannel
e fornire un testo asincrono IO.
Perché? Che problema stai cercando di risolvere? Puoi leggere milioni di righe al secondo con 'BufferedReader'. Non è abbastanza? – EJP
@EJP: voglio leggere in modo asincrono. Non voglio bloccare l'attesa di una riga di testo da ricevere su un socket. Voglio che il mio codice venga chiamato quando è stata ricevuta una riga di testo completa. –
@ giorgio-b Se non stai leggendo dal socket, cosa riceverà quella linea completa? –