CSDN博客

img shaobotao

Java的网络功能与编程2

发表于2004/11/2 23:46:00  966人阅读

分类: 程序文章

   四、从网络上获取声音

  Java从网络上获取声音文件并播放声音的编程方法有两类,一是利用Java提供的play(URL)及play(URL,String) 直接播放网络上的声音文件,另一类是通过getAudioClip(URL)或getAudioClip (URL,String)先从网络上获取声音文件,并生成AudioClip 类型的对象,然后对该对象进行操作。

  前者的使用格式是:

String Audur = "结点URL";
try {
play(new URL(Audur));
} catch(Exception e){}

  或

String Audur = "结点URL";
try {
 play(new URL(Audur),声音文件名);
} catch(Exception e){}

  后者使用的格式是:

String Audur = "结点URL";
AudioClip loopClip;
try {
 loopClip = getAudioClip(new URL(Audur));
}
catch(Exception e){
 System.out.println("Can´t open the URL ");
}

  或

String Audur = "结点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的参数;和前面处理图象的例子一样,也可以先用“new URL(url)”获取一个URL对象, 再传给 play 或
getAudioClip。如对第一种play(URL)的格式, 也可采用如下的编程格式:

URL Audur =null;
try {
Audur=new URL("结点URL ");
} catch(Exception e){
System.out.println("Can´t open the URL ");
}
play(Audur);

  下面对前述四种从网络上获取并播放声音文件的格式各举一简单的例子,以作编程时参考:

  ●程序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();
}
}
 五、显示网络上其他HTML文档

  利用Java提供的getAppletContext().showDocument(URL)可以显示其他结点的HTML文档,同前面的显示网络上其他结点的图象,有两种格式,下面各举一例:

  ●程序8 格式一

import java.applet.*;
import java.awt.*;
import java.net.*;
public class showdoc extends Applet
{
URL docur= null;
public void paint(Graphics g) {
try {
docur=new URL("http://www.shu.edu.cn/~xyx/doc/manhua.html");
}
catch (MalformedURLException e) {
System.out.println("Can´t open the URL ");
}
if (docur != null) {
getAppletContext().showDocument(docur,"_blank");
}
}
}

  ●程序9 格式二

import java.applet.*;
import java.awt.*;
import java.net.*;
public class showdoc2 extends Applet
{
URL docur= null;
public void paint(Graphics g) {
try {
getAppletContext().showDocument(new URL("http://www.shu.edu.cn/
~xyx/doc/manhua.html"));
}
catch (MalformedURLException e) {
System.out.println("Can´t open the URL ");
}
}
}

  六、读取网络上文件内容

  前述的网络功能只是显示或播放网络上结点的图象、 声音及HTML文档,并没有对其内容进行处理。事实上,Java还可读取网络上文件的内容,并对其内容进行处理。

  读取网络上文件内容的步骤可如下:

  1. 创建一个URL类型的对象

  如:

String url = "ftp://202.120.127.218/incoming/test/readtxt.html";
URL fileur;
try {
fileur = new URL(url); }
catch ( MalformedURLException e) {
System.out.println("Can´t get URL: " );
}

  2. 利用URL类的openStream(),获得对应的InputStream类的对象,如:

InputStream filecon = fileur.openStream();

  3. 将InputStream对象转化为DataInputStream类的对象,如:

DataInputStream filedata = new DataInputStream(filecon);

  4. 读取内容

  如对前面的filedata,可用filedata.readLine() 一行一行读取内容,或用filedata.readchar一个字符一个字符读取内容。 对读取到的内容,可由Java Applet进行各种处理, 并将处理结果用各种方式显示出来。

  下面的例子是读取 http://www.shu.edu.cn/~xyx/doc/manhua.html文件内容的例子,为简洁起见,该例中只将文件的内容逐行读出,并在文本区显示出来。

  ●程序10

import java.io.*;
import java.net.*;
import java.awt.*;
import java.applet.*;

public class showfile extends Applet{
URL fileur;
TextArea showarea = new TextArea("Please wait a while for get
text",10,70);
public void init() {
String url = "http://www.shu.edu.cn/~xyx/doc/manhua.html";
try { fileur = new URL(url); }
catch ( MalformedURLException e) {
System.out.println("Can´t get URL: " );
}

add(showarea);

}

public void paint(Graphics g) {
InputStream filecon = null;
DataInputStream filedata = null;
String fileline;
try {
filecon = fileur.openStream();
filedata = new DataInputStream(filecon);
while ((fileline = filedata.readLine()) != null) {
showarea.appendText(fileline+"/n");
}
}
catch (IOException e) {
System.out.println("Error in I/O:" + e.getMessage());
}
}
}
阅读全文
0 0

相关文章推荐

img
取 消
img