服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

读取网络文件


  效 果: 由于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();//关闭输入流
  }
  }
  }
  说明:我试验了一下,可以读任何网络上存在的资源,呵呵,那不是就可以做一个下载软件了吗?只需要增加个输出流保存到本地的文件中就可以了:)

扫描关注微信公众号