El método propuesto es el siguiente:
public static void standardIO2File(String fileName){
if(fileName.equals("")){//Si viene vacío usamos este por defecto
fileName="C:\\javalog.txt";
}
try {
//Creamos un printstream sobre el archivo permitiendo añadir al
//final para no sobreescribir.
PrintStream ps = new PrintStream(new BufferedOutputStream(
new FileOutputStream(new File(fileName),true)),true);
//Redirigimos entrada y salida estandar
System.setOut(ps);
System.setErr(ps);
} catch (FileNotFoundException ex) {
System.err.println("Se ha producido una excepción FileNotFoundException");
}
}
Como veis el método es muy sencillo: pasamos como parámetro un String con el nombre (y ruta) del fichero y creamos sobre él un PrintStream que pasaremos como argumento a los métodos setOut y setErr. Estos métodos redirigen al fichero la salida estándar y la de error. Podemos codificar el método con dos argumentos para redirigir la salida estándar a un fichero y la de error a otro, eso queda a gusto del consumidor.







