2011-12-19 13 views
40

Ho un metodo che legge un file e restituisce una stringa, ma volevo restituire un lettore. Voglio convertire la stringa in un lettore, o voglio leggere il file e restituire il lettore. Come posso fare questo?Come convertire String to Reader in java

+0

Il lettore di stringhe funziona correttamente. Ho usato il filereader invece di scrivere il mio metodo, questo è più semplice. (Reader) nuovo FileReader (filePath); – Arasu

risposta

84

Uso java.io.StringReader: return new StringReader(string);.

La prossima volta che hai bisogno di un lettore, puoi controllare "Sottoclassi dirette conosciute" della classe Reader. Lo stesso vale per InputStream, ecc. Il punto di partenza è javadoc: contiene molte informazioni utili.

Ma per il tuo compito a portata di mano, è meglio seguire il consiglio di Jon Lin di utilizzare semplicemente un FileReader. Non è necessario passare attraverso String. (Per questo, vale anche il mio consiglio del paragrafo precedente)

+0

Aggiungerei che se stai usando Eclipse, tirare su un albero di tutte le sottoclassi conosciute per qualsiasi tipo è facile come premere F4 quando il cursore è sul tipo (ad esempio 'Reader'). Presumo che altri IDE siano equipaggiati in modo simile. Incredibilmente utile in queste situazioni. – pwrex

+0

Questo risponde alla domanda * letterale * nel titolo ed è probabilmente il motivo per cui il 90% è arrivato qui. Ma la risposta di ** @ JonLin ** ha una soluzione migliore per la situazione specifica descritta da OP. –

8

È possibile utilizzare la classe StringReader dal pacchetto java.io.

String stringToBeParsed = "The quick brown fox jumped over the lazy dog"; 
StringReader reader = new StringReader(stringToBeParsed); 
+16

"* jumpS *", non "* jumpED *", altrimenti non vengono utilizzati tutti i 26 caratteri ;-). –

9

Oppure puoi semplicemente creare un FileReader e restituirlo.

+1

perché FileReader? – Bozho

+0

Dice che ha un metodo che legge un file e che vuole restituire un Reader invece di una stringa –

+1

ohh .. sì. mancato, grazie. E +1 – Bozho