In Java, c'è un modo di leggere un file (file di testo) in modo che possa leggere solo un carattere alla volta, piuttosto che String by String. Questo è per lo scopo di un analizzatore lessicale estremamente semplice, quindi puoi capire perché vorrei un tale metodo. Grazie.Lettura da file di testo carattere per carattere
risposta
Potete leggere l'intero file (se non è molto grande) nella memoria come stringa, e itera sul personaggio stringa di caratteri
Anche non una risposta. – FailedDev
È una risposta, pensi che dovrebbe contenere un codice per essere una risposta! –
Ecco un codice di esempio per la lettura/scrittura di un carattere alla volta
public class CopyCharacters {
public static void main(String[] args) throws IOException {
FileReader inputStream = null;
FileWriter outputStream = null;
try {
inputStream = new FileReader("xanadu.txt");
outputStream = new FileWriter("characteroutput.txt");
int c;
while ((c = inputStream.read()) != -1) {
outputStream.write(c);
}
} finally {
if (inputStream != null) {
inputStream.close();
}
if (outputStream != null) {
outputStream.close();
}
}
}
}
Nota, questa risposta è stata aggiornata per copiare il codice di esempio dal collegamento Ref, ma vedo che questa è essenzialmente la stessa risposta riportata di seguito.
ref: http://download.oracle.com/javase/tutorial/essential/io/charstreams.html
È possibile utilizzare il metodo di lettura della classe InputStreamReader che legge un carattere dal flusso e restituisce -1 quando raggiunge la fine del flusso
public static void processFile(File file) throws IOException {
try (InputStream in = new FileInputStream(file);
Reader reader = new InputStreamReader(in)) {
int c;
while ((c = reader.read()) != -1) {
processChar((char) c); // this method will do whatever you want
}
}
}
ci sono diverse soluzioni possibili. In generale si può usare qualsiasi Reader
da java.io
pacchetto per i caratteri di lettura, ad es .:
// Read from file
BufferedReader reader = new BufferedReader(new FileReader("file.txt"));
// Read from sting
BufferedReader reader = new BufferedReader(new StringReader("Some text"));
- 1. Primo carattere della lettura dal file di testo: ï »¿
- 2. Lettura carattere dall'immagine
- 3. suddivisione di un testo da un carattere
- 4. ridimensionamento carattere testo
- 5. Lettura sia di carattere che di linea dal file di testo
- 6. estrarre l'immagine carattere carattere dal file ttf
- 7. Leggi il file carattere per carattere in Rust
- 8. bash: lettura del testo da una stringa un carattere alla volta, con spazi
- 9. carattere di nuova riga nell'area di testo
- 10. Problemi di crenatura durante il disegno del testo carattere per carattere
- 11. Estrai testo dopo carattere specifico
- 12. Gradiente di testo con carattere impressionante
- 13. Cambiare il carattere dell'area di testo
- 14. Che cos'è veramente EOF per i file binari? Condizione? Carattere?
- 15. regex per rimuovere tutto il testo prima di un carattere
- 16. a ciclo continuo durante la lettura dal dispositivo di carattere
- 17. Lettura del carattere utf-8 dal flusso di byte
- 18. Leggi file fino a un carattere
- 19. getc Vs getchar Vs Scanf per la lettura di un carattere da stdin
- 20. Lettura da file di testo delimitato da virgole o tabulazioni
- 21. codice carattere HTML per sottolineare il carattere successivo
- 22. Come si legge l'input carattere per carattere in Java?
- 23. occorrenze Conte di dato carattere per cella
- 24. Come modificare la dimensione del carattere e il colore del carattere da un file Java?
- 25. SVG, testo, carattere con larghezza/altezza fissa
- 26. C++ carattere per int
- 27. Carattere personalizzato per android.support.design.widget.TabLayout
- 28. jQuery rimozione '-' carattere da stringa
- 29. Imposta colore carattere, faccia carattere e dimensione carattere in PHPExcel
- 30. tkinter - Come impostare il carattere per il testo?
In realtà, io non capisco; il modo in cui gestisci l'input non è lo stesso del modo in cui lo leggi. IMO dovresti usare un lettore bufferizzato e elaborare il carattere di input per carattere, non leggerlo esplicitamente in quel modo. –