Java:Les fichiers

De WIKI.minetti.org
Révision de 7 avril 2016 à 17:01 par Jp (discussion | contributions) (Page créée avec « == Accès == === Répertoire ressources === Dans un projet Java, un ou plusieurs répertoires ressources peuvent être mentionnés dans le CLASSPATH. Le code suivant perme... »)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)
Aller à : navigation, rechercher

Accès

Répertoire ressources

Dans un projet Java, un ou plusieurs répertoires ressources peuvent être mentionnés dans le CLASSPATH. Le code suivant permet d'accéder aux fichiers de ces répertoires:

InputStream stream = getClass ().getResourceAsStream ("/conf.properties");

Pour obtenir le chemin réel du fichier (à partir de la racine du système):

URL url = getClass ().getResource ("/conf.properties");
String filepath = url.toString ();

Répertoire du paquetage

L'accès à un fichier peut se faire au niveau du répertoire (ou des répertoires) du paquetage de la classe qui accède au fichier:

InputStream stream = getClass ().getResourceAsStream ("conf.properties");

Répertoire racine d'une application web (webapp)

L'accès à un fichier d'une application web situé en dehors du chemin /WEB-INF/classes et d'un des JAR de /WEB-INF/lib, se fait à l'aide du code suivant:

URL url = servletContext.getResource ("/img/logo.png");

Au niveau d'Eclipse, cela correspond au fichier src/main/webapp/img/logo.png.

Concaténation de fichiers

Pour faire une concaténation de 2 fichiers au niveau binaire:

private void appendFile (final File srcFile, final File destFile) throws Exception {
    final FileWriter fileWriter = new FileWriter(destFile, true);
    try {
        final BufferedWriter bufWriter = new BufferedWriter(fileWriter);
        try {
            final FileReader fileReader = new FileReader(srcFile);
            try {
                final BufferedReader bufReader = new BufferedReader(fileReader);
                try {
                    while (bufReader.ready()) {
                        bufWriter.write(bufReader.read());
                    }
                }
                finally {
                    bufReader.close();
                }
            }
            finally {
                fileReader.close();
            }
        }
        finally {
            bufWriter.close();
        }
    }
    finally {
        fileWriter.close();
    }
}

Pour faire une concaténation de 2 fichiers au niveau texte:

private void appendFile (final File srcFile, final File destFile) throws Exception {
    final FileWriter fileWriter = new FileWriter(destFile, true);
    try {
        final BufferedWriter bufWriter = new BufferedWriter(fileWriter);
        try {
            final FileReader fileReader = new FileReader(srcFile);
            try {
                final BufferedReader bufReader = new BufferedReader(fileReader);
                try {
                    while (bufReader.ready()) {
                        bufWriter.write(bufReader.readLine());
                        bufWriter.newLine();
                    }
                }
                finally {
                    bufReader.close();
                }
            }
            finally {
                fileReader.close();
            }
        }
        finally {
            bufWriter.close();
        }
    }
    finally {
        fileWriter.close();
    }
}