私が実行しているシステムは、JRE 1.6 を搭載した Windows XP です。
私はこれをします :
public static void main(String[] args) {
try {
System.out.println(new File("C:\\test a.xml").toURI().toURL());
} catch (Exception e) {
e.printStackTrace();
}
}
そして私はこれを得る:file:/C:/test%20a.xml
指定された URL の の前に 2 つのスラッシュがないのはC:
なぜですか? 私は期待しfile://C:...
た。それは正常な動作ですか?
編集 :
Java ソース コードから: java.net.URLStreamHandler.toExternalForm(URL)
result.append(":");
if (u.getAuthority() != null && u.getAuthority().length() > 0) {
result.append("//");
result.append(u.getAuthority());
}
ファイル URL の機関部分が null または空であるように見えるため、二重スラッシュがスキップされます。では、URL のオーソリティ部分とは何であり、ファイル プロトコルには実際に存在しないのでしょうか?