Âm thanh như bạn có thể muốn sử dụng URL chứ không phải là URI (đó là tổng quát hơn và cần phải đối phó với một cú pháp ít nghiêm ngặt.)
URI a = new URI("http://www.foo.com");
URI b = new URI("bar.html");
URI c = a.resolve(b);
c.toString() -> "http://www.foo.combar.html"
c.getAuthority() -> "www.foo.com"
c.getPath() -> "bar.html"
toString URI của() không cư xử như bạn mong đợi , nhưng với tính chất chung của nó, nó có thể là nó nên được tha thứ.
Phương thức toURL() đáng buồn của URI không hoạt động như tôi mong muốn cung cấp cho bạn những gì bạn muốn.
URL u = c.toURL();
u.toString() -> "http://www.foo.combar.html"
u.getAuthority() -> "www.foo.combar.html" --- Oh dear :(
Vì vậy, tốt nhất chỉ để bắt đầu thẳng ra với một URL để có được những gì bạn muốn:
URL x = new URL("http://www.foo.com");
URL y = new URL(x, "bar.html");
y.toString() -> "http://www.foo.com/bar.html"
Nguồn
2010-03-28 23:34:32
đầu ra bạn đang mong đợi là gì? –
"http://www.foo.com/bar.html" sẽ ổn thôi. – Cpa
Tại sao bạn sử dụng hai URI? Phải có một lý do nhưng nó không rõ ràng. –