溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java的網(wǎng)絡功能與編程 一 (轉(zhuǎn))

發(fā)布時間:2020-08-11 15:49:58 來源:ITPUB博客 閱讀:110 作者:worldblog 欄目:編程語言
Java的網(wǎng)絡功能與編程 一 (轉(zhuǎn))[@more@]Java的網(wǎng)絡功能與編程
徐迎曉
(上海大學計算中心25#)
 
摘 要:Java語言是Inte.NET上最熱門的編程語言,本文針對

 Java的網(wǎng)絡功能,對Java從網(wǎng)絡上獲取圖象、聲音、

 HTML文檔及文本文件等編程方法作了初步的介紹,同

 時介紹了動態(tài)獲取網(wǎng)絡上資源的方法作了介紹。文中

 提供了大量簡明易懂的實例。

關鍵詞:Java;Internet;網(wǎng)絡



 Java語言是Internet上新興的編程語言,對Java的特性以及基

本的編程方法已有很多文章作過介紹。但是,廣大Java愛好者更希望

了解Java更深一步的編程方法,本文就Java的網(wǎng)絡功能及其編程方法

作一初步的介紹。

 為了方便初次接觸Java的讀者,本文先就Java編程的一些常識

作簡單介紹。



 一、Java編程簡介



 1. 編程環(huán)境:



 對于大部分讀者,以下的配置是較為經(jīng)濟的一種選擇:

操作系統(tǒng) Win95

編譯軟件 jdk1.01

瀏覽軟件 Netscape2.0以上(32位)



 2. 編程方法:



 先用文本編輯器如Edit、NotePad等輸入Java程序,以.java為

文件名后綴存盤。

 再執(zhí)行命令行:“Javac 文件名”來編譯Java程序。編譯后生成

后綴為.class的字節(jié)碼文件。

 最后,如果是Java Applitcation,則執(zhí)行命令行:“Java 字

節(jié)碼文件名”來運行Java程序。

 如果是Java Applet,則用文本編輯器輸入調(diào)用該Java Applet

的HTML 文檔, 以 .htm 為文件名后綴存盤。 再執(zhí)行命令行:

“appletviewer HTML文件名”來運行Java Applet?;蛴肗etscape

打開該HTML文檔。



 3. 關于本文中程序的說明



 為了使程序能夠最簡潔地體現(xiàn)其所代表的編程方法,本文中的程

序一般采用最簡單的形式,省略了線程等內(nèi)容。因此,本文的程序不

是“好”的程序,但最容易為初學者理解。

 本文的所有程序經(jīng)編譯后,生成的字節(jié)碼文件及對應的HTML文檔

已上載到http://www.shu.edu.cn/~xyx/test/jvnet, 均可正確

運行。連入Internet的讀者可用瀏覽器打開該地址,查看運行效果。

 連入Internet的讀者也可以在本地硬盤輸入并編譯本文的程序,

用Netscape的File/Open File菜單打開HTML文檔,體會編程方法并

查看運行效果。如果讀者想將Java Applet 放到自己的主機上或其他

FTP服務器上,在Netscape中用http協(xié)議或ftp協(xié)議調(diào)用,出于安全

性限制,應作如下修改:

 如果讀者在某個WWW主機上有帳號,可以做個人Homepage(一般

在用戶根目錄創(chuàng)建WWW或public_html目錄即可,Homepage的地址為

http://HostName/~個人帳號),可將本文程序中對應的

http://www.shu.edu.cn/~xyx/部分修改為讀者自己的web結(jié)點地址,

然后將編譯后生成的字節(jié)碼文件及對應的HTML文檔上載到自己的結(jié)點上。

 如果讀者的計算機連入了Internet,也可以找一個可以上載的

ftp結(jié)點,如:ftp://ftp.shnet.edu.cn/incoming,將本文程序中

對應的http://www.shu.edu.cn/~xyx/部分修改為ftp結(jié)點的地址,

將編譯后生成的字節(jié)碼文件及對應的HTML文檔上載到該結(jié)點上,以查

看運行效果。

 如果讀者的計算機沒有聯(lián)網(wǎng),也可以在單機上運行Web 服務軟

件如Webstar for Win95,將本文程序中對應的http: //www. shu

.edu.cn/~xyx/部分修改為“http://本地IP地址”的形式,來模擬

網(wǎng)絡編程。



 二、Java網(wǎng)絡功能及獲取網(wǎng)絡上資源的一般步驟



 Java程序可以獲取網(wǎng)絡上結(jié)點的圖象、聲音、HTML文檔及文本

等資源,并可以對獲得的資源進行處理。例如Java程序可以每隔一

定時間讀取某結(jié)點提供的最新數(shù)據(jù),并以圖表的形式顯示出來。

 在編程處理上,一般先生成一個URL類型的對象,然后用 Java

中相應的方法(method)獲取該對象所代表的資源。下面分別介紹

Java網(wǎng)絡功能的幾個例子,并由此介紹幾種不同的編程方法。



 三、從網(wǎng)絡上獲取圖象



 Java Applet可以直接從網(wǎng)絡上結(jié)點獲取圖象并顯示出來。 為

了了解其編程方法和從本地顯示圖象的編程有何不同,我們先不考慮

網(wǎng)絡功能,來看一個簡單的圖象顯示的例子:



●程序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);

 }

}



 這是一個最簡單的獲取并顯示圖象的例子, 在該例中, 先用

getImage(getDocumentBase(),圖象文件名)從HTML文檔所在位置調(diào)

用圖象test.gif,并由此生成一個Image類型的對象image, 然后用

drawImage(image, 0, 0,this)在屏幕上將圖象顯示出來。

 如果想從網(wǎng)絡上其他結(jié)點獲取圖象,關鍵是創(chuàng)建對應于網(wǎng)絡上

其他結(jié)點的Image類型的對象,一旦獲得Image類型的對象獲得了,

便可以對其進行任何可能的圖象操作。

 Java提供了如下方法可以創(chuàng)建對應于其他結(jié)點的圖象:

getImage(new URL(字符串))

 其使用格式可有兩種:



 String url = "結(jié)點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é)點URL ");

 }

 catch (MalformedURLException e) {

 System.out.println("Can't open the URL ");

 }

 image=getImage(imgur);



 前一種格式用“new URL(url)”生成 URL 對象, 并直接作為

getImage的參數(shù),后一種格式先用“new URL(url)”生成一個 URL

對象,再傳給getImage。兩種格式本質(zhì)上是一樣的。兩種格式中,

生成URL對象的部分都包含在



try{

獲取URL對象

 }

catch (MalformedURLException e) {

出錯提示

 }

中。

 例如要調(diào)用http://www.shu.edu.cn/~xyx/img/shnet.jpg結(jié)點

的圖象,第一種格式完整的程序如下:

●程序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);

 }

}



 將上述兩個程序分別以imag.java和imag2. java 存盤, 執(zhí)行

javac imag.java和javac imag2.java,將得到編譯后生成的imag

.class和imag2.class,最后創(chuàng)建調(diào)用這兩個Java Applet的HTML文

檔,如imag.class對應的HTML文檔可如下:

< html >

< head >

< title >Example < /title >

< /head >

< center >

< applet code=imag.class width=550 height=250 >

< /applet >

< /html >



 將該HTML文檔存入test.html文件,用Netscape打開, 如果你

的計算機連入了Internet,便可以看到Java Applet 所顯示的從網(wǎng)

絡上獲得的圖象了。(對于本文中其他不同的Java Applet, 對應

的HTML文檔只要修改其中相應的“code=imag.class”即可。)



 四、從網(wǎng)絡上獲取聲音



 Java從網(wǎng)絡上獲取聲音文件并播放聲音的編程方法有兩類,一

是利用Java提供的play(URL)及play(URL,String) 直接播放網(wǎng)絡

上的聲音文件,另一類是通過getAudioClip(URL)或getAudioClip

(URL,String)先從網(wǎng)絡上獲取聲音文件,并生成AudioClip 類型的

對象,然后對該對象進行操作。

 前者的使用格式是:



String Audur = "結(jié)點URL";

 try {

 play(new URL(Audur)); 

 } catch(Exception e){}







String Audur = "結(jié)點URL";

 try {

 play(new URL(Audur),聲音文件名);

 } catch(Exception e){}

 后者使用的格式是:

String Audur = "結(jié)點URL";

AudioClip loopClip;

 try {

 loopClip = getAudioClip(new URL(Audur));

 }

catch(Exception e){

System.out.println("Can't open the URL ");

 }







String Audur = "結(jié)點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)”獲取一個URL對象, 再傳給 play 或

getAudioClip。如對第一種play(URL)的格式, 也可采用如下的編

程格式:

URL Audur =null;

 try {

 Audur=new URL("結(jié)點URL ");

 } catch(Exception e){

System.out.println("Can't open the URL ");

 }

 play(Audur);

 下面對前述四種從網(wǎng)絡上獲取并播放聲音文件的格式各舉一簡單的例子,

以作編程時參考:

 ●程序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();

 }

}



向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI