Como crio um novo URL
objeto usando um arquivo local, para fins de testes de unidade?
Como crio um novo URL
objeto usando um arquivo local, para fins de testes de unidade?
Respostas:
Usando o Java 7:
Paths.get(string).toUri().toURL();
No entanto, você provavelmente deseja obter um URI
. Por exemplo, a URI
começa com file:///
mas um URL com file:/
(pelo menos, é o que toString
produz).
java.nio.file.Paths
. Além disso, certifique-se de deixar claro que você quer dizer as implementações em "URI vs URL". Anway java.net.URL.toString()
produz a mesma coisa no Unix, como deve. Ele exibe apenas um "/" muito errado (consulte o esquema de URI do arquivo ). Eu acho que isso é em Java por razões, melhor uso java.net.URI
. Ele gera corretamente "file: // [host] /" em uma chamada para .toString()
.
new URL("file:///your/file/here")
/your/file/here
é um caminho absoluto para um arquivo no Unix / Linux. No Windows, seria diferente, eu acho.
new URL("file:my.properties");
File myFile=new File("/tmp/myfile");
URL myUrl = myFile.toURI().toURL();
veja aqui a sintaxe completa: http://en.wikipedia.org/wiki/File_URI_scheme
para sistemas unix, será como o @Alex disse, file:///your/file/here
enquanto que para sistemas Windows seriafile:///c|/path/to/file
File.toURI().toURL()
é o caminho a percorrer
.properties
arquivo.
java file url
, o que, no meu caso, significa que eu estava pesquisando o formato de uma file://
URL, em Java, para uso em um .properties
arquivo ou para digitar manualmente etc.
file://
infelizmente é necessário. Ser dependente do sistema não é um problema tão grande, pois é uma propriedade mutável.
Você também pode usar
[AnyClass].class.getResource(filePath)
jar:file:/home/user/a/b/c/foo.jar!/com/example/stuff/config.txt
.