效 果: 由于applet的安全性问题,网页中无法正常操作.我是在jb5中执行通过的.ie中需要数字签名.
程序代码:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.net.*;
import java.io.*;
public class search extends applet implements actionlistener // 增加事件监听器
{
panel top = new panel(new borderlayout()); // 设置布局
textarea doc = new textarea();
button read = new button("读取");
textfield addr = new textfield("http://www.delfan.com/data/sitedata.dat");
public void init()
{
try
{
setlayout(new borderlayout()); // 设置布局
add(top,borderlayout.north); // 增加到顶部
add(doc,borderlayout.center); // 增加到客户区
top.add(read,borderlayout.east); // 在最右边增加按钮
top.add(addr,borderlayout.center); // 其他部分用编辑框填满
read.addactionlistener(this); // 按钮增加到监听器中
}
catch(exception e)
{
system.out.println("创建失败");
}
}
public void actionperformed(actionevent e) // 相应事件处理
{
string str = e.getactioncommand(); // 取得发出命令控件显示的名称
if(str.equals("读取"))
try
{
doc.settext(""); // 清除doc内容
readurl(addr.gettext()); // 读指定的数据并放到xxx中
}
catch(exception ex)
{
doc.settext("读取失败");
}
}
public void readurl(string urlname) throws exception // 如果发生异常则向上抛出
{
int httpresult; // 服务器返回的状态
url url =new url(urlname); // 创建url
urlconnection urlconn = url.openconnection(); // 试图连接并取得返回状态码
urlconn.connect();
httpurlconnection httpconn =(httpurlconnection)urlconn;
httpresult = httpconn.getresponsecode();
if(httpresult != httpurlconnection.http_ok) // 不等于http_ok说明连接不成功
doc.settext("无法连接到" + addr.gettext());
else
{
int filesize = urlconn.getcontentlength(); // 取数据长度
inputstreamreader isreader = new inputstreamreader(urlconn.getinputstream());
char[] buffer = new char[2048]; // 创建存放输入流的缓冲
int num = 0; // 读入的字节数
while(num>-1)
{
num = isreader.read(buffer); // 读入到缓冲区
if(num < 0) break; // 已经读完
doc.append(new string(buffer,0,num)); // 显示出来
}
isreader.close();//关闭输入流
}
}
}
说明:我试验了一下,可以读任何网络上存在的资源,呵呵,那不是就可以做一个下载软件了吗?只需要增加个输出流保存到本地的文件中就可以了:)
闽公网安备 35060202000074号