Java的網(wǎng)絡(luò)功能與編程 一 (轉(zhuǎn))[@more@]Java的網(wǎng)絡(luò)功能與編程
徐迎曉
(上海大學(xué)計(jì)算中心25#)
摘 要:Java語言是Inte.NET上最熱門的編程語言,本文針對
Java的網(wǎng)絡(luò)功能,對Java從網(wǎng)絡(luò)上獲取圖象、聲音、
HTML文檔及文本文件等編程方法作了初步的介紹,同
時(shí)介紹了動(dòng)態(tài)獲取網(wǎng)絡(luò)上資源的方法作了介紹。文中
提供了大量簡明易懂的實(shí)例。
關(guān)鍵詞:Java;Internet;網(wǎng)絡(luò)
Java語言是Internet上新興的編程語言,對Java的特性以及基
本的編程方法已有很多文章作過介紹。但是,廣大Java愛好者更希望
了解Java更深一步的編程方法,本文就Java的網(wǎng)絡(luò)功能及其編程方法
作一初步的介紹。
為了方便初次接觸Java的讀者,本文先就Java編程的一些常識
作簡單介紹。
一、Java編程簡介
1. 編程環(huán)境:
對于大部分讀者,以下的配置是較為經(jīng)濟(jì)的一種選擇:
操作系統(tǒng) Win95
編譯軟件 jdk1.01
瀏覽軟件 Netscape2.0以上(32位)
2. 編程方法:
先用文本編輯器如Edit、NotePad等輸入Java程序,以.java為
文件名后綴存盤。
再執(zhí)行命令行:“Javac 文件名”來編譯Java程序。編譯后生成
后綴為.class的字節(jié)碼文件。
最后,如果是Java Applitcation,則執(zhí)行命令行:“Java 字
節(jié)碼文件名”來運(yùn)行Java程序。
如果是Java Applet,則用文本編輯器輸入調(diào)用該Java Applet
的HTML 文檔, 以 .htm 為文件名后綴存盤。 再執(zhí)行命令行:
“appletviewer HTML文件名”來運(yùn)行Java Applet?;蛴肗etscape
打開該HTML文檔。
3. 關(guān)于本文中程序的說明
為了使程序能夠最簡潔地體現(xiàn)其所代表的編程方法,本文中的程
序一般采用最簡單的形式,省略了線程等內(nèi)容。因此,本文的程序不
是“好”的程序,但最容易為初學(xué)者理解。
本文的所有程序經(jīng)編譯后,生成的字節(jié)碼文件及對應(yīng)的HTML文檔
已上載到http://www.shu.edu.cn/~xyx/test/jvnet, 均可正確
運(yùn)行。連入Internet的讀者可用瀏覽器打開該地址,查看運(yùn)行效果。
連入Internet的讀者也可以在本地硬盤輸入并編譯本文的程序,
用Netscape的File/Open File菜單打開HTML文檔,體會編程方法并
查看運(yùn)行效果。如果讀者想將Java Applet 放到自己的主機(jī)上或其他
FTP
服務(wù)器上,在Netscape中用http協(xié)議或ftp協(xié)議調(diào)用,出于安全
性限制,應(yīng)作如下修改:
如果讀者在某個(gè)WWW主機(jī)上有帳號,可以做個(gè)人Homepage(一般
在用戶根目錄創(chuàng)建WWW或public_html目錄即可,Homepage的地址為
http://HostName/~個(gè)人帳號),可將本文程序中對應(yīng)的
http://www.shu.edu.cn/~xyx/部分修改為讀者自己的web結(jié)點(diǎn)地址,
然后將編譯后生成的字節(jié)碼文件及對應(yīng)的HTML文檔上載到自己的結(jié)點(diǎn)上。
如果讀者的計(jì)算機(jī)連入了Internet,也可以找一個(gè)可以上載的
ftp結(jié)點(diǎn),如:ftp://ftp.shnet.edu.cn/incoming,將本文程序中
對應(yīng)的http://www.shu.edu.cn/~xyx/部分修改為ftp結(jié)點(diǎn)的地址,
將編譯后生成的字節(jié)碼文件及對應(yīng)的HTML文檔上載到該結(jié)點(diǎn)上,以查
看運(yùn)行效果。
如果讀者的計(jì)算機(jī)沒有聯(lián)網(wǎng),也可以在單機(jī)上運(yùn)行Web 服務(wù)軟
件如Webstar for Win95,將本文程序中對應(yīng)的http: //www. shu
.edu.cn/~xyx/部分修改為“http://本地IP地址”的形式,來模擬
網(wǎng)絡(luò)編程。
二、Java網(wǎng)絡(luò)功能及獲取網(wǎng)絡(luò)上資源的一般步驟
Java程序可以獲取網(wǎng)絡(luò)上結(jié)點(diǎn)的圖象、聲音、HTML文檔及文本
等資源,并可以對獲得的資源進(jìn)行處理。例如Java程序可以每隔一
定時(shí)間讀取某結(jié)點(diǎn)提供的最新數(shù)據(jù),并以圖表的形式顯示出來。
在編程處理上,一般先生成一個(gè)URL類型的對象,然后用 Java
中相應(yīng)的方法(method)獲取該對象所代表的資源。下面分別介紹
Java網(wǎng)絡(luò)功能的幾個(gè)例子,并由此介紹幾種不同的編程方法。
三、從網(wǎng)絡(luò)上獲取圖象
Java Applet可以直接從網(wǎng)絡(luò)上結(jié)點(diǎn)獲取圖象并顯示出來。 為
了了解其編程方法和從本地顯示圖象的編程有何不同,我們先不考慮
網(wǎng)絡(luò)功能,來看一個(gè)簡單的圖象顯示的例子:
●程序1
import java.applet.*;
import java.awt.*;
public class imag0 extends Applet{
Image image;
public void init() {
image=getImage(getDocumentBase(),"test.gif");
}
public void paint(Graphics g) {
g.drawImage(image, 0, 0,this);
}
}
這是一個(gè)最簡單的獲取并顯示圖象的例子, 在該例中, 先用
getImage(getDocumentBase(),圖象文件名)從HTML文檔所在位置調(diào)
用圖象test.gif,并由此生成一個(gè)Image類型的對象image, 然后用
drawImage(image, 0, 0,this)在屏幕上將圖象顯示出來。
如果想從網(wǎng)絡(luò)上其他結(jié)點(diǎn)獲取圖象,關(guān)鍵是創(chuàng)建對應(yīng)于網(wǎng)絡(luò)上
其他結(jié)點(diǎn)的Image類型的對象,一旦獲得Image類型的對象獲得了,
便可以對其進(jìn)行任何可能的圖象操作。
Java提供了如下方法可以創(chuàng)建對應(yīng)于其他結(jié)點(diǎn)的圖象:
getImage(new URL(字符串))
其使用格式可有兩種:
String url = "結(jié)點(diǎn)URL";
Image image;
try {
image = getImage(new URL(url));
}
catch(Exception e){
System.out.println("Can't open the URL ");
}
或
URL imgur=null;
Image image;
try {
imgur=new URL("結(jié)點(diǎn)URL ");
}
catch (MalformedURLException e) {
System.out.println("Can't open the URL ");
}
image=getImage(imgur);
前一種格式用“new URL(url)”生成 URL 對象, 并直接作為
getImage的參數(shù),后一種格式先用“new URL(url)”生成一個(gè) URL
對象,再傳給getImage。兩種格式本質(zhì)上是一樣的。兩種格式中,
生成URL對象的部分都包含在
try{
獲取URL對象
}
catch (MalformedURLException e) {
出錯(cuò)提示
}
中。
例如要調(diào)用http://www.shu.edu.cn/~xyx/img/shnet.jpg結(jié)點(diǎn)
的圖象,第一種格式完整的程序如下:
●程序2
import java.applet.*;
import java.net.*;
import java.awt.*;
public class imag extends Applet{
Image image;
public void init() {
String url = "http://www.shu.edu.cn/~xyx/img/shnet.jpg";
try {
image = getImage(new URL(url));
} catch(Exception e){}
}
public void paint(Graphics g) {
g.drawImage(image, 0, 0,this);
}
}
第二種格式完整的程序如下:
●程序3
import java.applet.*;
import java.net.*;
import java.awt.*;
public class imag2 extends Applet{
Image image;
URL imgur=null;
public void init() {
try {
imgur=new URL("http://www.shu.edu.cn/~xyx/img/shnet.jpg");
}
catch (MalformedURLException e) {
System.out.println("Can't open the URL ");
}
image=getImage(imgur);
}
public void paint(Graphics g) {
g.drawImage(image, 0, 0,this);
}
}
將上述兩個(gè)程序分別以imag.java和imag2. java 存盤, 執(zhí)行
javac imag.java和javac imag2.java,將得到編譯后生成的imag
.class和imag2.class,最后創(chuàng)建調(diào)用這兩個(gè)Java Applet的HTML文
檔,如imag.class對應(yīng)的HTML文檔可如下:
< html >
< head >
< title>Example < /title>
< /head >
< center >
< applet code=imag.class width=550 height=250 >
< /applet >
< /html >
將該HTML文檔存入test.html文件,用Netscape打開, 如果你
的計(jì)算機(jī)連入了Internet,便可以看到Java Applet 所顯示的從網(wǎng)
絡(luò)上獲得的圖象了。(對于本文中其他不同的Java Applet, 對應(yīng)
的HTML文檔只要修改其中相應(yīng)的“code=imag.class”即可。)
四、從網(wǎng)絡(luò)上獲取聲音
Java從網(wǎng)絡(luò)上獲取聲音文件并播放聲音的編程方法有兩類,一
是利用Java提供的play(URL)及play(URL,String) 直接播放網(wǎng)絡(luò)
上的聲音文件,另一類是通過getAudioClip(URL)或getAudioClip
(URL,String)先從網(wǎng)絡(luò)上獲取聲音文件,并生成AudioClip 類型的
對象,然后對該對象進(jìn)行操作。
前者的使用格式是:
String Audur = "結(jié)點(diǎn)URL";
try {
play(new URL(Audur));
} catch(Exception e){}
或
String Audur = "結(jié)點(diǎn)URL";
try {
play(new URL(Audur),聲音文件名);
} catch(Exception e){}
后者使用的格式是:
String Audur = "結(jié)點(diǎn)URL";
AudioClip loopClip;
try {
loopClip = getAudioClip(new URL(Audur));
}
catch(Exception e){
System.out.println("Can't open the URL ");
}
或
String Audur = "結(jié)點(diǎn)URL";
AudioClip loopClip;
try {
loopClip = getAudioClip(new URL(Audur) ,聲音文件名);
}
catch(Exception e){
System.out.println("Can't open the URL ");
}
上面的四種格式都是將生成URL對象部分--“new URL(url)”
直接作為play或getAudioClip的參數(shù);和前面處理圖象的例子一樣,
也可以先用“new URL(url)”獲取一個(gè)URL對象, 再傳給 play 或
getAudioClip。如對第一種play(URL)的格式, 也可采用如下的編
程格式:
URL Audur =null;
try {
Audur=new URL("結(jié)點(diǎn)URL ");
} catch(Exception e){
System.out.println("Can't open the URL ");
}
play(Audur);
下面對前述四種從網(wǎng)絡(luò)上獲取并播放聲音文件的格式各舉一簡單的例子,
以作編程時(shí)參考:
●程序4 格式一
import java.applet.*;
import java.awt.*;
import java.net.*;
public class sound1 extends Applet
{ AudioClip loopClip;
public void paint(Graphics g) {
String Audur = "http://www.shu.edu.cn/~xyx/java/Animator/audio/bark.au";
try {
play(new URL(Audur));
} catch(Exception e){}
}
}
●程序5 格式二
import java.applet.*;
import java.awt.*;
import java.net.*;
public class sound2 extends Applet
{ AudioClip loopClip;
public void paint(Graphics g) {
String Audur = "http://www.shu.edu.cn/~xyx/java/Animator/audio/";
try {
play(new URL(Audur),"bark.au");
} catch(Exception e){}
}
}
●程序6 格式三
import java.applet.*;
import java.awt.*;
import java.net.*;
public class sound extends Applet{
AudioClip loopClip;
public void init() {
String Audur = "http://www.shu.edu.cn/~xyx/java/Animator/audio/bark.au";
try {
loopClip = getAudioClip(new URL(Audur));
} catch(Exception e){}
}
public void paint(Graphics g){
loopClip.loop();
}
}
●程序7 格式四
import java.applet.*;
import java.awt.*;
import java.net.*;
public class sound0 extends Applet{
AudioClip loopClip;
URL auur;
public void init() {
try {
auur=new URL("http://www.shu.edu.cn/~xyx/java/Animator/audio/");
}
catch (MalformedURLException e) {
System.out.println("Can't open the URL ");
}
loopClip = getAudioClip(auur,"bark.au");
}
public void paint(Graphics g){
loopClip.loop();
}
}
分享題目:Java的網(wǎng)絡(luò)功能與編程一(轉(zhuǎn))
路徑分享:http://bm7419.com/article36/psdjsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、做網(wǎng)站、外貿(mào)建站、網(wǎng)站策劃、小程序開發(fā)、用戶體驗(yàn)
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源:
創(chuàng)新互聯(lián)