Heim > Java > JavaBase > Hauptteil

So lesen Sie Dateien in Java

Freigeben: 2022-01-12 15:30:15
Original
61196 Leute haben es durchsucht

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.

So lesen Sie Dateien in Java

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("...");
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage