Méthodes de lecture de fichiers en Java : 1. Lire en utilisant la méthode [java.io] et lire à partir d'un chemin relatif par rapport au répertoire utilisateur actuel ; 2. En utilisant le [java.lang.ClassLoader] ; méthode Read, lit à partir d'un chemin relatif par rapport au chemin de classe.
Méthodes pour lire des fichiers en java :
Deux méthodes pour lire des fichiers en java : java.io et java .lang.ClassLoader
// java.io: File file = new File("..."); FileInputStream fis = new FileInputStream("..."); FileReader fr = new FileReader("..."); //ClassLoader: ClassLoader loader = XXXClass.class.getClassLoader(); ClassLoader loader2 = Thread.currentThread().getContextClassLoader(); URL url = loader.getResource("..."); File file = new File(url.getFile()); InputStream input = loader.getResourceAsStream("...");
1. Les classes du package java.io analysent toujours les noms de chemin relatifs en fonction du répertoire utilisateur actuel. En d'autres termes, le bon fonctionnement des chemins relatifs dépend de. la valeur de user.dir. La propriété système user.dir est définie au démarrage de la JVM. Il s'agit généralement du répertoire appelant de la machine virtuelle Java, c'est-à-dire le répertoire dans lequel la commande java est exécutée.
Pour le conteneur Tomcat/jboss, user.dir est le répertoire %home/bin%/, car c'est dans ce répertoire que nous démarrons le conteneur Web
Lors de l'exécution du programme dans Eclipse, Eclipse le fera Définissez la valeur de user.dir sur le répertoire racine du projet
Le répertoire des utilisateurs peut être consulté à l'aide de System.getProperty("user.dir")
Donc, utilisez java.io pour lisez le fichier, qu'il s'agisse d'un chemin relatif ou d'un chemin absolu n'est pas une bonne pratique, ne l'utilisez pas si vous ne pouvez pas l'utiliser (en JavaEE).
2. Il existe 2 façons d'utiliser ClassLoader
Class.getResource(), le chemin absolu et le chemin relatif. Le chemin absolu commence par / et commence la recherche à partir du répertoire racine du chemin de classe ou du package jar ;
Le chemin relatif est relatif au répertoire où se trouve la classe actuelle, vous permettant d'utiliser .. ou . localiser les fichiers.
ClassLoader.getResource() ne peut utiliser que des chemins absolus et ne commence pas par / .
Ces deux méthodes de lecture des fichiers de ressources ne dépendent pas de user.dir ou de l'environnement de déploiement spécifique. Ce sont des pratiques recommandées (JavaEE)
Comment sélectionner
java.io : est lu par rapport au chemin relatif du répertoire utilisateur actuel ; se concentre sur le traitement des fichiers disque ou est utilisé dans des projets Java purs. Bien que la méthode ClassLoader soit plus générale, s'il ne s'agit pas d'un environnement javaEE, il est déraisonnable de localiser le chemin de classe pour lire le fichier. java.lang.ClassLoader : Lecture du chemin relatif par rapport au chemin de classe ; il est recommandé d'utiliser cette méthode dans l'environnement javaEE. Habituellement, ClassLoader ne peut pas lire les fichiers trop volumineux. Il convient à la lecture des fichiers de configuration de projets Web. Si vous avez besoin de lire des fichiers volumineux, vous devez toujours utiliser le package IO. fichier via ClassLoader. Le chemin absolu, puis transmis au fichier ou à d'autres objets, il serait préférable d'utiliser les objets du package io pour lire. Pour plus de connaissances sur Java, veuillez prêter attention aututoriel de base Java.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!