import java.io.FileOutputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Arrays;
public class EscribirArchivoGrande {
  public static void main(String [] args){
     final int longitud=4096;
     if (args.length>0) {
      String ruta = args[0];
      try {
       FileOutputStream elArchivo = new FileOutputStream(ruta);
       byte [] elArreglo= new byte[longitud] ;
       long inicio = System.currentTimeMillis();
       for (int i=1;i<=524288;i++) {
           Arrays.fill(elArreglo, (byte)(i%128));
           elArchivo.write(elArreglo);
       }
       long fin = System.currentTimeMillis();
       elArchivo.close();
       System.out.println("Tiempo de escritura "+(fin-inicio));
      } catch (FileNotFoundException laExcepcion) {
         System.err.println("Error al crear al archivo "+laExcepcion.getMessage());
      } catch (IOException laExcepcion) {
         System.err.println("Error al escribir o cerrar al archivo "
         +laExcepcion.getMessage());
      }
     } else {
       System.err.println("Proporcionar ruta del archivo");
     }
  }
}