Die Standardausgabe von File.toURL()
ist
Diese scheinen unter Windows nicht zu funktionieren und müssen in
geändert werden %Vor%Hat das Format
%Vor%funktioniert einwandfrei unter Unix (Ich habe keine Unix-Maschine zum Testen)? Gibt es eine Bibliothek, die sich darum kümmern kann, eine URL aus einer Datei zu generieren, die das richtige Format für die aktuelle Umgebung hat?
Ich habe überlegt, eine Regex zu verwenden, um das Problem zu beheben, etwa wie folgt:
%Vor%Das ist jedoch nicht ganz richtig, weil es eine korrekte URL wie folgt konvertiert:
%Vor%zu:
%Vor%Aktualisieren
Ich benutze Java 1.4 und in dieser Version File.toURL()
ist nicht veraltet und beide File.toURL().toString()
und File.toURI().toString()
erzeugen die gleiche (falsche) URL in Windows
Die File(String)
erwartet einen Pfadnamen, keine URL. Wenn Sie eine File
basierend auf einer String
erstellen möchten, die tatsächlich eine URL darstellt, müssen Sie diese String
wieder in URL
konvertieren und File(URI)
, um File
basierend auf URL#toURI()
.
Update: Da Sie auf Java 1.4 und URL#toURI()
sind eigentlich eine Java 1.5-Methode (sorry, dieses Bit übersehen), besser verwenden Sie URL#getPath()
statt dessen den Pfadnamen zurückgibt, so dass Sie File(String)
.
Die File.toURL () -Methode ist veraltet - es wird empfohlen, stattdessen die toURI () -Methode zu verwenden. Wenn Sie das stattdessen verwenden, verschwindet Ihr Problem?
Bearbeiten:
Ich verstehe: Sie verwenden Java 4. Ihre Frage hat jedoch nicht erklärt, was Sie zu tun versuchten. Wenn Sie, wie Sie in den Kommentaren angeben, versuchen, eine Datei einfach zu lesen, verwenden Sie FileReader , um dies zu tun (oder FileInputStream wenn die Datei ein binäres Format ist.
Was meinst du eigentlich mit "Funktioniert das Format file:/c:/foo/bar
korrekt unter Unix"?
Einige Beispiele von Unix.
%Vor%Sie können jedoch z.B. tu dies:
%Vor% (Wenn Sie eine URL
-Instanz benötigen, tun Sie file.toURI().toURL()
als sagt Javadoc .)
Bearbeiten : Wie wäre es mit dem folgenden, hilft es?
%Vor% (Im Prinzip sehr nahe am Beispiel von BalusC, das new File(url.toURI())
verwendet hat.)
Tags und Links java