Código de Java - Java leer ficheros del directorio y escribir sus nombres en un fichero

Imágen de perfil

Java leer ficheros del directorio y escribir sus nombres en un ficherográfica de visualizaciones


Java

estrellaestrellaestrellaestrellaestrella(2)
Actualizado el 04 de Noviembre del 2015 por Julio (Creado el 03 de Noviembre del 2015)
1.306 visualizaciones desde el 03 de Noviembre del 2015. Una media de 28 por semana
Java leer ficheros del directorio y escribir sus nombres en un fichero

En este caso vamos a profundizar un poquito más con un ejemplo sencillo, que consiste, en añadir un par de parámetros más al método public boolean readFolderFiles(String folder) creado anteriormente, para indicar con el primer parámetro que añadimos si queremos listar ficheros y directorios o solo ficheros, en el segundo pasaremos el PrintStream por donde daremos salida a nuestra lectura del directorio, en el ejemplo anterior ya habíamos utilizado la consola con System.out que es un PrintStream, esta es su definición: “Un PrintStream añade funcionalidad a otros canales de salida (output stream), dándole la habilidad para imprimir la representación de varios tipos de datos de forma correcta” (Class PrintStream), con lo que si definimos con nuestra salida por ejemplo un fichero obtendremos un método con el que podremos exportar los datos a un fichero o imprimirlos por pantalla.
Este es el código, fíjate que hemos modificado el método anterior para que llame al nuevo, y conservando su funcionalidad, también añadimos el método de Java crear archivo creado en la primera publicación de Java I/O:

Ejemplo de la ejecución del código en el IDE Netbeans que es que utilicé para esta prueba:
Java-leer-ficheros-del-directorio-ejemplo-netbeans

Espero que os sea útil

Requerimientos

Este ejemplo se puede ejecutar en cualquier sistema operativo, simplemente cambia el valor de folder, si estás en Windows o Linux (como es mi caso), es código Java, así que lo puedes ejecutar en cualquier IDE.

Ejemplo que he desarrollado para mi pequeño tutorial que estoy desarrollando sobre Java I/O en http://codigoxules.org/java-leer-ficheros-del-directorio-java-io/

1.0
estrellaestrellaestrellaestrellaestrella(2)

Actualizado el 04 de Noviembre del 2015 (Creado el 03 de Noviembre del 2015)gráfica de visualizaciones de la versión: 1.0
1.307 visualizaciones desde el 03 de Noviembre del 2015. Una media de 28 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
package org.xulescode.javaio;
 
import java.io.File;
import java.io.IOException;
 
import java.io.FileNotFoundException;
import java.io.PrintStream;
 
 
/**
 * Utility class, where we will create methods for training in the use of files,
 * ultimately, Java I / O Basic. 
 * Clase de utilidades, donde crearemos métodos
 * para el aprendizaje del manejo de ficheros, en definitiva, Java I/O Básico.
 *
 * @author xulescode You can follow me on my website http://www.codigoxules.org/en
 * Puedes seguirme en mi web http://www.codigoxules.org).
 */
public class JavaIOUtils {
 
    /**
     * Explanation of the method by which we create a file if it does not exist,
     * returns true if created and false if not created. Explicación del método
     * con el que creamos un fichero si no existe, devolviendo true si se crea y
     * false si no se crea.
     * <h3>Example (Ejemplo)</h3>
     * <pre>
     *      boolean result = javaIOUtils.createFile("/home/xules/JavaIO", "myfile.txt");
     *      System.out.println("Result of file creation (Resultado de la creación del fichero): " + result);
     * </pre>
     *
     * @param filePath <code>String</code> ruta donde vamos a crear el fichero.
     * @param fileName <code>String</code> nombre del fichero que queremos crear
     * con la extensión
     * @return <code>boolean</code> true si crea el fichero, false si ya existe
     * o sino se puede crear.
     */
    public boolean createFile(String filePath, String fileName) {
        boolean result;
        File newFile = new File(filePath, fileName);
        if ((result = !newFile.exists())) {
            try {
                result = newFile.createNewFile();
            } catch (IOException ex) {
                result = false;
                System.out.println("File create exception (Excepción al crear el fichero): \n     " + ex);
            }
        }
        return result;
    }
 
 
    /**
     * Explanation of the method by which we read the folder we pass as
     * parameter if exists, returning true in this case and false if not.
     * Explicación del método con el que leemos la carpeta que pasamos como
     * parámetro si existe, devolviendo true si existe y false si no existe.
     * <h3>Example (Ejemplo)</h3>
     * <pre>
     *      JavaIOUtils javaIOUtils = new JavaIOUtils();
     *      javaIOUtils.readFolderFiles("/home/xules/codigoxules");
     * </pre>
     *
     * @param folder <code>String</code> 
     *      path where we are going to read the files. 
     *      Ruta donde vamos a leer los ficheros.
     * @return <code>boolean</code> 
     *      we return true if the directory that we pass for read exists.
     *      Devolvemos true si existe el directorio que se pasa para leer.
     */
    public boolean readFolderFiles(String folder) {
       return readFolderFiles(folder, false, System.out);
    }
    /**
     *
     * @param folder <code>String</code> 
     *      path where we are going to read the files. 
     *      Ruta donde vamos a leer los ficheros.
     * @param onlyFiles
     * @param output
     * @return <code>boolean</code> 
     *      we return true if the directory that we pass for read exists.
     *      Devolvemos true si existe el directorio que se pasa para leer. 
     */
    public boolean readFolderFiles(String folder, boolean onlyFiles, PrintStream output) {
        boolean resultado;
        File folderFile = new File(folder);
        if ((resultado = folderFile.exists())) {
            File[] files = folderFile.listFiles();
            for (File file : files) {
                boolean isFolder = file.isDirectory();
                if ((onlyFiles && !isFolder) || (!onlyFiles)) {
                    output.println((isFolder ? "FOLDER: " : "  FILE: ") + file.getName());
                }
            }
        }
        return resultado;
    }
    /**
     * Main method for the tests for the created method, pruebas de <strong>Java
     * read folder</strong>. Método main para las pruebas para el método creado,
     * pruebas de <strong>Java leer carpeta</strong>.
     *
     * @param args
     */
    public static void main(String args[]) {
        // Second example (Segundo ejemplo)
        JavaIOUtils javaIOUtils = new JavaIOUtils();
        String folder = "/home/xules/codigoxules";
        PrintStream printStream = System.out;
        javaIOUtils.readFolderFiles(folder, false, printStream);
        // Third example (Tercer ejemplo)
        boolean result = javaIOUtils.createFile(folder, "outPut.txt");
        if (result) {
            try {
                printStream = new PrintStream(new File(folder + "/outPut.txt"));
            } catch (FileNotFoundException ex) {
                System.out.println(ex);
            }
            javaIOUtils.readFolderFiles(folder, false, printStream);
        }
        // If all was good, we have to see in the console the new file: outPut.txt
        // Si todo fue bien en la consola tiene que aparecer el nuevo fichero: outPut.txt
        javaIOUtils.readFolderFiles(folder);
    }
}



Comentarios sobre la versión: 1.0 (2)

Imágen de perfil
Manuel
05 de Noviembre del 2015
estrellaestrellaestrellaestrellaestrella
+1 Excelente aporte compañero... me quedo esperando leer ese tutorial de Java I/O que estás preparando. Muchas gracias
Responder
Imágen de perfil
Baldemar
05 de Noviembre del 2015
estrellaestrellaestrellaestrellaestrella
Interesante amigo..
Responder

Comentar la versión: 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s3330