Como crio um novo URLobjeto usando um arquivo local, para fins de testes de unidade?
Como crio um novo URLobjeto 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 URIcomeça com file:///mas um URL com file:/(pelo menos, é o que toStringproduz).
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/hereenquanto que para sistemas Windows seriafile:///c|/path/to/file
File.toURI().toURL()é o caminho a percorrer
.propertiesarquivo.
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 .propertiesarquivo 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.