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.txt
De 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 linea
while( 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