2011-05-23 17 views

Respuesta

228
new File(path).toURI().toURL(); 
+8

Para java 7+: Paths.get ("ruta", "a", "cosas"). ToUri(). ToURL() – Ajax

19
new URL("file:///your/file/here") 
+1

donde '/ your/file/here' es una ruta absoluta a un archivo en Unix/Linux. En Windows sería diferente, creo. –

+5

No es muy inteligente, ya que tiene que manejar el escape de caracteres que no están permitidos en las URL usted mismo. En Windows (y potencialmente en otros sistemas operativos), también debe modificar el separador de ruta desde la ruta de acceso nativa al archivo. – jarnbjo

+0

'nueva URL (" file: my.properties ");' – weberjn

34
new File("path_to_file").toURI().toURL(); 
2

echar un vistazo aquí para obtener la sintaxis completa: http://en.wikipedia.org/wiki/File_URI_scheme para sistemas tipo Unix, que será tan @Alex dijo file:///your/file/here mientras que para los sistemas Windows sería file:///c|/path/to/file

+5

No lo haga hazlo manualmente 'File.toURI(). ToURL()' es el camino a seguir –

+2

@SeanPatrickFloyd a veces no tiene opción, como cuando está en un archivo '.properties'. – ArtB

+0

@ArtB No veo cómo eso hace la diferencia –

8
File myFile=new File("/tmp/myfile"); 
URL myUrl = myFile.toURI().toURL(); 
3

También puede usar

[AnyClass].class.getResource(filePath) 
+1

pero solo si ese archivo existe dentro del classpath – aepurniet

+1

Si el "filePath" se puede encontrar en un jar, la URL resultante es como 'jar: file: /home/user/a/b/c/foo.jar!/Com/example/stuff/config.txt'. –

22

Uso de Java 7:

Paths.get(string).toUri().toURL(); 

Sin embargo, es probable que quieren conseguir un URI. Por ejemplo, un URI comienza con file:/// pero una URL con file:/ (al menos, eso es lo que produce toString).

+0

"... un URI comienza con el archivo: /// pero una URL con el archivo:/..." ¿Es ese el caso tanto para Windows como para Linux? – ptntialunrlsd

+0

@ptntialunrlsd Esa es una buena pregunta. No lo he comprobado, pero supongo que sí. –

+4

No. Una URL es solo un caso especial de un URI. Un URI de archivo comienza con "file: //" y luego enumera el host (generalmente omitido), seguido de "/" y la ruta "foo/bar" (generalmente destinada a ser leída como una ruta absoluta). Por lo tanto, "file: /// foo/var". Un URI que se parece a "file:/foo/bar" es incorrecto. Ver también: [esquema de URI de archivo] (https://en.wikipedia.org/wiki/File_URI_scheme) –

Cuestiones relacionadas