Posts Tagged ‘io’

  • Como Borrar Directorios En Java

    2

    Bastante simple este snippet para algo que no es nativo de Java. Java no permite borrar un directorio que contenga archivos adentro. Lo primero que hay que hacer para eliminar el directorio es simplemente eliminar los archivos interiores. Aca un snippet que se llama recursivamente.

    public boolean deleteDirectory(File directory) {
      File[] files = directory.listFiles();
        for(int i = 0; i < files.length; i++) {
          if(files[i].isDirectory()) {
    	this.deleteDirectory(files[i]);
          } else {
    	files[i].delete();
          }
       }
       return path.delete();
    }
    
    
     
    						
  • Como Copiar Archivos en Java

    0

    Otro snippet para tener bien a mano. De esta manera podemos copiar archivos binarios o ascii.

    String source = "c:/myfile.x";
    String destiny = "c:/mycopy.x";
    File sourceFile = new File(source);
    File destinyFile = new File(destiny);
    InputStream in = new FileInputStream(sourceFile);
    
    OutputStream out = new FileOutputStream(destinyFile);
    
    byte[] buf = new byte[2048];
    int len;
    while ((len = in.read(buf)) > 0) {
    	out.write(buf, 0, len);
    }
    in.close();
    out.close();
    
  • Como Leer un Archivo por Lineas en Java

    0

    Esta es una tarea bastante sencilla que no siempre podemos encontrar una solucion a mano.

    FileInputStream file = new FileInputStream("file.txt");
    
    DataInputStream input = new DataInputStream(file);
    BufferedReader buffer = new BufferedReader(new InputStreamReader(input));
    String line;
    
    while ((line = buffer.readLine()) != null)   {
    	System.out.println (line);
    }
    
    input.close();
    
  • Consejo para java IO

    0

    Flushing Streams

    Parece ser obvio lo que digo acá, pero repetidamente tenemos situaciones donde nos olvidamos de hacer esto y luego pagamos las consecuencias. El típico problema es que hay 2 programas comunicándose a través de la network, el primero le habla al segundo, el segundo le contesta pero como no hizo un flush el primero nunca se entera de la respuesta.

    Simplemente hagan flush() en un stream despues de haber escrito en él.

    OutputStream out;
    byte[] data
    out.write(data);
    out.flush();

    Si están escribiendo texto, es bueno utilizar un PrintWriter para output. Esta clase tiene un constructor que deja hacer flush cada vez que escribimos en él.

    PrintWriter writer = new PrintWriter(out, true);
    writer.writeLine("some text"); 

    Con ésta utilidad nos evitamos hacer flush cada vez que escribimos.

  • Buscar Imagenes Dentro De Un Jar

    0

    Cuando hacemos deploy de nuestras aplicaciones Java queremos distribuir generalmente la menor cantidad de archivos individuales. Para eso, distribuir tu aplicación como un Jar file es lo más conveniente. El tema llega a la hora de referenciar a recursos e imágenes dentro del Jar. Aca veremos como solucionar éste tema.

    Hay que utilizar getResourceAsStream() para que nuestro código sea portable en vez de utilizar esta vieja técnica:

    InputStream in = new FileInputStream("images/image.png");

    Cuando corre éste código explota básicamente porque sigue buscando el recurso dentro del filesystem y no dentro del Jar.

    El modo correcto de encarar éste llamado es:

    InputStream in = this.getClass().getResourceAsStream("images/image.png");

    Esta porción de código busca images/image.png de modo relativo  a la locación de la clase referenciada y también funciona perfectamente con recursos dentro de un Jar file.