Pregunta sobre Java
jueves, abril 3, 2014 at 10:55PM
jcarmonaloeches

¿Cuál es la salida por consola, y cuál la escrita en el fichero, de ejecutar el siguiente código fuente?

NOTA: tiene más gracia contestar sin hacer uso de IDE que haciendo uso de IDE


package pruebas;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
/**
 *
 * @author Jaime Carmona Loeches
 *
 */
public class Escritor implements Runnable {
private String nombreFichero = "";
@Override
public void run() {
System.out.println("Escritor ejecutando");
ejecutaLogica(0);
}
public Escritor(String nombreFichero) {
System.out.println("Escritor inicializado");
this.nombreFichero = nombreFichero;
}
private synchronized void ejecutaLogica(int numEjecucion) {
System.out.println(numEjecucion);
FileWriter fw = null;
BufferedWriter bw = null;
try {
File file = new File(nombreFichero);
fw = new FileWriter(file);
bw = new BufferedWriter(fw);
for (int i = 0; i < 10; i++) {
String texto = numEjecucion + ":" + i;
bw.write(texto + "\n");
}
cierraRecursos(fw, bw);
numEjecucion++;
if (numEjecucion < 2)
ejecutaLogica(numEjecucion);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
}
}
private void cierraRecursos(FileWriter fw, BufferedWriter bw) {
try {
bw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* @param args
* @throws InterruptedException
*/
public static void main(String[] args) {
String nombreFichero = "out.txt";
Escritor escritor = new Escritor(nombreFichero);
escritor.run();
}
}

Article originally appeared on javaHispano (http://www.javahispano.org/).
See website for complete article licensing information.