选择显示字体大小

在applet中读取文件内容


  ---- 我们知道,在java applet中出于安全性考虑,applet是不允许对文件进行操作的,不仅不允许写文件,而且不允许读文件。 尽管我们在编制applet时即使使用了文件操作的语句java不会报错,在开发工具(如cafe)中调试时也能够正常运行,但当我们在浏览器中运行这个applet时浏览器就会报错。但有时我们的确要读取文件中的内容,比如要将服务器中的.txt文件内容在applet中显示出来,是不是就没有办法了呢?

---- 不!有办法。决窍就是我们不要将这些服务器上的文件作为普通文件来处理,而是将它们作为网络资源来获取它们的内容。在java中可用于获取网络资源的类主要有两种,一是url类,另一个是urlconnection类。两个类都提供了以字节流的方式读取资源信息的方法,而且可以对资源信息的类型作出判断,以便作相应的处理。不同之处是urlconnection类可提供的信息比url类要多得多,它除了可以获取资源数据外,还可以提供资源长度、资源发送时间、资源最新更新时间、资源编码、资源的标题等许多信息。

---- 以下是两个类的常用方法。

url类:
  · url(string, string, int, string)
   构造方法,创建一个包含协议类型、主机名、端口号和路径的url对象
  · url(string, string, string)
   构造方法,创建一个包含协议类型、主机名和路径的url对象,其中端口号为缺省值
  · url(string)
   构造方法,创建一个url对象,参数将协议、主机名、端口号和路径组合起来
  · url(url,string)
   构造方法,根据给定url对象与相对路径创建一个新的url对象
  · object getcontent( )
   检索url内容信息,并返回给对象
  · inputstream openstream( )
   从资源处返回一个输入流
  · urlconnection openconnection( )
   生成一个urlconnection对象

urlconnection类:
  · protected urlconnection(url)
   构造方法,创建一个针对指定url对象的urlconnection类
  · object getcontent( )
   返回url对象所对应的内容
  · inputstream getinputstream( )
   获取从对象中读取的字节流
  · protected static string guesscontenttypefromstream(inputstream is)
   根据输入流猜测内容的类型

---- 下面以读取服务器上的.txt文件内容为例说明如何在applet中读取文件。设服务器的ip地址为202.114.1.16,.txt文件的路径为/file/sample.txt。以下是读取sample.txt内容的applet的源代码。

//getfile.html
<html>
<head>
<title>读取文件的applet</title>
</head>
<body>
这是服务器上txt文件的内容<br>
<applet code="getfile.class" width=200 height=100>
</applet>
</body>
</html>

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

public class getfile extends applet
{
    string info;

    public void init()
    {
        url url;
        urlconnection urlc;

        resize(200,100);
        setbackground(color.white);

        try{
            url = new url("http://202.114.1.16/file/sample.txt");
            urlc = url.openconnection();
            urlc.connect();
            info = getinfo(urlc);
        }catch(malformedurlexception mfe){
            system.out.println("url form error!");
        }catch(ioexception ioe){
            system.out.println("io exception!");
        }
    }

    public void paint(graphics g)
    {
        g.setcolor(color.red);
        g.drawstring(info,50,50);
    }

    public string getinfo(urlconnection urlc)
    {
        string txt = new string();
        inputstream is;
        int i;

        try{
            is = urlc.getinputstream();
            i = is.read();
            while(i != -1){
                txt = txt + (char)i;
                i = is.read();
            }
            is.close();
        }catch(ioexception ioe){
            system.out.println("io exception!");
            txt = new string("file read failed!");
        }

        return txt;
    }
}

   以上java程序在两种系统中调试均通过,两种系统的配置分别为:
(1) 服务器:digital unix + oracle webserver3.0
浏览器.netscape4.0.5或ie4.0
(2) 服务器:windows98 + pws
     浏览器.netscape4.0.5或ie4.0


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons