2017-10-30 4 views
0

Ist es möglich? Im Grunde habe ich eine lokale Binärdatei vertreten durch:Von einer java.net.URL, die eine Datei (Datei: /// Pfad/zu/Datei) zu einem java.nio.FileChannel enthält

file:///path/to/myfile.dat

Ich möchte diese Datei lesen mit ByteBuffer s, mit anderen Worten, ich glaube, ich brauche eine FileChannel von der angegebenen URL, das zu tun.

Irgendwelche Hoffnung?

+0

@JohnD Es ist eine URL. Es hat ein Schema und einen schemaabhängigen Teil. – EJP

+1

@JohnD Ich habe es mit meinem Browser versucht und ich kann eine lokale Datei öffnen. Die richtige URL hat 3 '/' anstelle von 2 (mein Schlechter) => 'file: /// Pfad/zu/Mylocalfile.dat' (Obs: Ich habe meine ursprüngliche URL korrigiert, die fälschlicherweise zwei '/' anstelle von 3 hatte) – LatencyFighter

Antwort

1

Ja, holen Sie sich einfach den Pfad aus der URL und öffnen Sie ihn mit .

+1

Das Aufrufen von URL.getPath() oder URL.getfile() gibt keinen gültigen Dateinamen zurück. Es wird den Pfadabschnitt der URL zurückgeben, mit allen Prozent-Escapes. Eine URL sollte in einen Pfad mit 'Paths.get (url.toURI())' konvertiert werden. – VGR

Verwandte Themen