En Java, ¿hay alguna manera de leer un archivo (archivo de texto) de forma que solo se lea un carácter a la vez, en lugar de Cadena por cadena? Esto es con el propósito de un analizador léxico extremadamente básico, para que pueda entender por qué me gustaría un método de este tipo. Gracias.Lectura desde el archivo de texto carácter por carácter
Respuesta
Puede leer todo el archivo (si no es mucho más grande) en la memoria como una cadena, y iterar sobre el carácter de la cadena de caracteres
También no es una respuesta. – FailedDev
Es una respuesta, ¿crees que debería contener un código para ser una respuesta? –
Aquí hay un código de ejemplo para la lectura/escritura de un carácter a la vez
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, esta respuesta se actualizó para copiar el código de muestra del enlace Ref, pero veo que esta es esencialmente la misma respuesta que se da a continuación.
ref: http://download.oracle.com/javase/tutorial/essential/io/charstreams.html
Usted puede utilizar el método de lectura de la clase InputStreamReader que se lee un carácter del flujo y devuelve -1 cuando llega al final de la secuencia
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
}
}
}
Hay varias posibles soluciones En general, se puede utilizar cualquier Reader
de java.io
paquete para caracteres de lectura, por ejemplo .:
// Read from file
BufferedReader reader = new BufferedReader(new FileReader("file.txt"));
// Read from sting
BufferedReader reader = new BufferedReader(new StringReader("Some text"));
- 1. Lectura de un archivo carácter por carácter en C
- 2. Cómo leer desde un archivo de texto, carácter por carácter en C++
- 3. Problemas de kerning al dibujar texto carácter por carácter
- 4. C# archivo de texto - cómo escribir el carácter EOF
- 5. Validar texto con carácter especial
- 6. grupo por el primer carácter
- 7. Cómo reemplazar un carácter en el texto por jQuery
- 8. ¿Cómo leo la entrada carácter por carácter en Java?
- 9. Importar archivo de texto como cadena de un solo carácter
- 10. Comparación de dos cadenas en carácter java por carácter
- 11. Plist contiene el carácter "&"
- 12. PHP - Eliminar el último carácter del archivo
- 13. Valores de lectura de Java desde el archivo de texto
- 14. Emacs navegación rápida por carácter?
- 15. Eliminar último carácter/línea
- 16. ¿Qué es el carácter 0x1f?
- 17. Cómo especificar el "carácter
- 18. Análisis de control de crucero "!" carácter en el archivo NAnt
- 19. Cómo mostrar el último carácter de NSString *
- 20. Obteniendo el carácter devuelto por read() en BufferedReader
- 21. Detecta si el carácter se simplifica o el carácter chino tradicional
- 22. Django no muestra el carácter de nueva línea al representar texto desde la base de datos
- 23. carácter de nueva línea en el archivo de texto usando QFile
- 24. cómo eliminar el carácter de edittext?
- 25. archivo CSV de lectura en Java añade espacio entre cada carácter
- 26. Lectura de caracteres que no sean ASCII desde un archivo de texto
- 27. urlencode() el 'asterisco' (estrella?) Carácter
- 28. python abre el archivo de texto con un espacio entre cada carácter
- 29. ¿Cómo se llama el carácter '`'?
- 30. Reemplazar el carácter "en C#
En realidad, no lo entiendo; cómo manejas la entrada no es lo mismo que cómo la lees. IMO debes usar un lector de memoria intermedia y procesar la entrada carácter por carácter, no leerla explícitamente de esa manera. –