Maison  >  Article  >  Java  >  Comment lire des fichiers en Java

Comment lire des fichiers en Java

尚
original
2019-11-21 13:58:4161083parcourir

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.

Comment lire des fichiers en Java

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 au

tutoriel 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn