Methoden zum Lesen von Dateien in Java: 1. Lesen mit der Methode [java.io] und Lesen aus einem relativen Pfad relativ zum aktuellen Benutzerverzeichnis 2. Mit der Methode [java.lang.ClassLoader]; Methode Lesen, Lesen aus einem relativen Pfad relativ zum Klassenpfad.
Methoden zum Lesen von Dateien in Java:
Zwei Methoden zum Lesen von Dateien in Java: java.io und 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. Klassen im java.io-Paket analysieren immer relative Pfadnamen basierend auf dem aktuellen Benutzerverzeichnis. Mit anderen Worten, ob relative Pfade gut funktionieren, hängt davon ab der Wert von user.dir. Die Systemeigenschaft user.dir wird beim Start der JVM festgelegt. Dies ist normalerweise das aufrufende Verzeichnis der Java Virtual Machine, also das Verzeichnis, in dem der Java-Befehl ausgeführt wird.
Für den Tomcat/jboss-Container ist user.dir das %home/bin%/-Verzeichnis, da wir in diesem Verzeichnis den Webcontainer starten.
Wenn das Programm in Eclipse ausgeführt wird, wird Eclipse dies tun Legen Sie den Wert von user.dir auf das Stammverzeichnis des Projekts fest
Das Benutzerverzeichnis kann mit System.getProperty("user.dir") angezeigt werden
Verwenden Sie also java.io, um Lesen Sie die Datei. Unabhängig davon, ob es sich um einen relativen oder einen absoluten Pfad handelt, ist dies keine gute Vorgehensweise. Verwenden Sie sie nicht, wenn Sie sie nicht verwenden können (in JavaEE).
2. Es gibt zwei Möglichkeiten, ClassLoader zu verwenden
Class.getResource(), absoluter Pfad und relativer Pfad. Der absolute Pfad beginnt mit / und beginnt mit der Suche im Stammverzeichnis des Klassenpfads oder JAR-Pakets.
Der relative Pfad ist relativ zum Verzeichnis, in dem sich die aktuelle Klasse befindet, sodass Sie .. oder verwenden können Dateien suchen.
ClassLoader.getResource() kann nur absolute Pfade verwenden und beginnt nicht mit / .
Diese beiden Methoden zum Lesen von Ressourcendateien hängen nicht von user.dir oder der spezifischen Bereitstellungsumgebung ab. Es handelt sich um empfohlene Vorgehensweisen (JavaEE)
Auswahl
java.io:
wird relativ zum relativen Pfad des aktuellen Benutzerverzeichnisses gelesen; der Schwerpunkt liegt auf dem Umgang mit Festplattendateien oder der Verwendung in reinen Java-Projekten.
Obwohl die ClassLoader-Methode vielseitiger ist, ist es unvernünftig, den Klassenpfad zum Lesen der Datei zu finden, wenn es sich nicht um eine JavaEE-Umgebung handelt.
java.lang.ClassLoader:
Relative Pfadlesung relativ zum Klassenpfad; es wird empfohlen, diese Methode in der JavaEE-Umgebung zu verwenden.
Normalerweise kann ClassLoader keine zu großen Dateien lesen. Es eignet sich zum Lesen großer Dateien. Sie müssen jedoch zuerst das IO-Paket verwenden Der absolute Pfad der Datei wird dann an die Datei oder andere Objekte übergeben. Zum Lesen ist es besser, die Objekte im io-Paket zu verwenden.
Für weitere Java-Kenntnisse beachten Sie bitte das Java-Grundlagen-Tutorial.
Das obige ist der detaillierte Inhalt vonSo lesen Sie Dateien in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!