Ich versuche eine Datei von URL zu öffnen.
Objekt der URL wird mit der Methode getResource () von ClassLoader erstellt. Die von getResource () zurückgegebene Ausgabe-URL lautet =
%Vor%Nach der Verwendung der Methode URL.getFile (), die String als "/ C: / users /" zurückgibt, entfernt sie " Datei: " nur nicht die " / " Dies gibt mir einen Fehler beim Öffnen einer Datei mit dem neuen FileInputStream. Fehler: FileNotFoundException
"/" im Anfang des Dateinamens verursacht das gleiche Problem beim Abrufen des Pfadobjekts. Hier wird der Wert des Verzeichnisses aus der URL.getResource (). GetFile ()
abgerufenPfad Dest = Pfads.get (Verzeichnis);
Fehler erhalten ist: java.nio.file.InvalidPathException: Unzulässiges Zeichen & lt;: & gt; bei Index 2: / C: / Benutzer /
ist jemand mit einem solchen Problem konfrontiert?
Verwenden Sie nicht URL.getFile()
, es gibt den "Datei" -Teil der URL zurück, der nicht mit einem Datei- oder Pfadnamen einer Datei auf der Festplatte übereinstimmt. (Es sieht so aus, aber wie Sie herausgefunden haben, gibt es viele Wege, auf denen eine Diskrepanz besteht.) Rufen Sie stattdessen URL.toURI()
auf und übergeben Sie das resultierende URI-Objekt an Paths.get()
Das sollte funktionieren, solange Ihre URL auf eine echte Datei und nicht auf eine Ressource in einer JAR-Datei zeigt.
Beispiel:
%Vor%Tags und Links java-7