La explicación a continuación sirve para que un programa escrito en el lenguaje de programación Java, diseñado para leer de la entrada estándar pueda tomar los datos de un archivo.
El comando en la terminal se muestra a continuación, en donde
Programa es el programa en Java y
entrada.txt contiene los datos de entrada.
$ java Programa < entrada.txtDe esta forma el contenido del archivo es redirigido a la entrada estándar.
¿Qué pasa si el archivo tiene muchas líneas? ¿Cómo leer cada una de ellas?Suponga que el archivo
entrada.txt contiene estas líneas:
1
2
3
4
5
Un programa
Programa.java que lee cada una de estas líneas del archivo (como si fueran de la entrada estándar) y las imprime se muestra a continuación. Usa el método
ready() de la clase
BufferedReader.
import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintStream;public class Programa{public static void main(String[] args) throws java.io.IOException {BufferedReader in;PrintSream out;in = new BufferedReader( new InputStreamReader( System.in) );out = System.out;// Lee el archivo linea por lineawhile( in.ready() ){
String linea = in.readLine();
// Imprime a la salida estandar
out.println( linea );
} } } En el caso que también se quisiera redirigir la salida estándar a un archivo:
$ java Programa < entrada.txt > salida.txt