最近看 Java 中的 Applet ,又碰見(jiàn)了令 vivizhyy 頭痛的 URL 路徑問(wèn)題。
首先看下 URL 和 URI 。
URL 和 URI 的概念是不同的 ,URL 是 URI 的特例(此前 vivizhyy 一直以為的是反過(guò)來(lái)的情況,)。URL可以打開(kāi)資源,而URI則不行。URL和URI對(duì)象可以互相轉(zhuǎn)換,使用各自的toURI(),toURL()方法即可。(參見(jiàn) http://dev.yesky.com/85/3001085.shtml)
考試大提示:當(dāng)需要調(diào)用文件時(shí),使用 Java applet 中的方法:getDocumentBase(),這個(gè)返回的值到底是什么? API 中給的解釋是:Gets the URL of the document in which this applet is embedded.(用的被動(dòng)語(yǔ)態(tài)...也就應(yīng)該是嵌套著我們寫的 applet 的那個(gè)網(wǎng)頁(yè)文件)。在 netBeans IDE 6.0 中,當(dāng)運(yùn)行編寫的 Applet 時(shí),會(huì)自動(dòng)在 build 路徑下生成相應(yīng)的網(wǎng)頁(yè)文件(*.html)。那么在調(diào)用 getDocumentBase() 這個(gè)方法時(shí),返回的就是自動(dòng)生成 .html 格式文件的 URL .那么相應(yīng)的多媒體文件也應(yīng)當(dāng)與生成的 .html 文件放在同一目錄下,這樣就可以正常的在頁(yè)面中使用多媒體文件了。
可是當(dāng)多媒體文件和 .html 文件放在不同的目錄下,那又該如何找到多媒體文件的 URL ? 比如我的 AppletTest.html 的路徑為 build\AppletTest.html , 而音頻文件的目錄為 build\classes\audio.au 時(shí),想要調(diào)用 play( URL url , String name ) 方法,如何獲取 URL 的 參數(shù)值?
① 把多媒體文件剪切到放置 .html 文件的目錄下。-_-,這是最簡(jiǎn)單的解決方法,但是這樣文件的目錄層次會(huì)很亂。
② 寫如下的代碼:
public void start() {
String strURL = getDocumentBase().toString() + "classes";
try {
URL auURL = new URL(strURL);
play(auURL, "spacemusic.au");
} catch (Exception e) {
e.printStackTrace();
}
時(shí),運(yùn)行的結(jié)果是, 沒(méi)有正常播放聲音
首先看下 URL 和 URI 。
URL 和 URI 的概念是不同的 ,URL 是 URI 的特例(此前 vivizhyy 一直以為的是反過(guò)來(lái)的情況,)。URL可以打開(kāi)資源,而URI則不行。URL和URI對(duì)象可以互相轉(zhuǎn)換,使用各自的toURI(),toURL()方法即可。(參見(jiàn) http://dev.yesky.com/85/3001085.shtml)
考試大提示:當(dāng)需要調(diào)用文件時(shí),使用 Java applet 中的方法:getDocumentBase(),這個(gè)返回的值到底是什么? API 中給的解釋是:Gets the URL of the document in which this applet is embedded.(用的被動(dòng)語(yǔ)態(tài)...也就應(yīng)該是嵌套著我們寫的 applet 的那個(gè)網(wǎng)頁(yè)文件)。在 netBeans IDE 6.0 中,當(dāng)運(yùn)行編寫的 Applet 時(shí),會(huì)自動(dòng)在 build 路徑下生成相應(yīng)的網(wǎng)頁(yè)文件(*.html)。那么在調(diào)用 getDocumentBase() 這個(gè)方法時(shí),返回的就是自動(dòng)生成 .html 格式文件的 URL .那么相應(yīng)的多媒體文件也應(yīng)當(dāng)與生成的 .html 文件放在同一目錄下,這樣就可以正常的在頁(yè)面中使用多媒體文件了。
可是當(dāng)多媒體文件和 .html 文件放在不同的目錄下,那又該如何找到多媒體文件的 URL ? 比如我的 AppletTest.html 的路徑為 build\AppletTest.html , 而音頻文件的目錄為 build\classes\audio.au 時(shí),想要調(diào)用 play( URL url , String name ) 方法,如何獲取 URL 的 參數(shù)值?
① 把多媒體文件剪切到放置 .html 文件的目錄下。-_-,這是最簡(jiǎn)單的解決方法,但是這樣文件的目錄層次會(huì)很亂。
② 寫如下的代碼:
public void start() {
String strURL = getDocumentBase().toString() + "classes";
try {
URL auURL = new URL(strURL);
play(auURL, "spacemusic.au");
} catch (Exception e) {
e.printStackTrace();
}
時(shí),運(yùn)行的結(jié)果是, 沒(méi)有正常播放聲音

