Java: File.toURI (). ToURL () en un archivo de Windows
El sistema que estoy ejecutando es Windows XP, con JRE 1.6.
Hago esto :
public static void main(String[] args) {
try {
System.out.println(new File("C:\\test a.xml").toURI().toURL());
} catch (Exception e) {
e.printStackTrace();
}
}
y me sale esto:file:/C:/test%20a.xml
¿Cómo es que la URL dada no tiene dos barras inclinadas antes de laC:
? Esperabafile://C:...
. ¿Es el comportamiento normal?
EDITAR:
Desde el código fuente de Java: java.net.URLStreamHandler.toExternalForm (URL)
result.append(":");
if (u.getAuthority() != null && u.getAuthority().length() > 0) {
result.append("//");
result.append(u.getAuthority());
}
Parece que la parte de Autoridad de la URL de un archivo es nula o está vacía y, por lo tanto, se omite la barra doble. Entonces, ¿cuál es la parte de autoridad de una URL y está realmente ausente del protocolo de archivo?