Applet web端对文件的读取方式
转载:http://www.exam8.com/computer/Java/zonghe/200708/659876.html
---- 我们知道,在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
这是服务器上TXT文件的内容
//getFile.Javaimport 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
Applet web端对文件的读取方式的更多相关文章
- Java对文件的读取方式以及它们的优缺点
Java常用的对文件的读取方式基本包括: BufferedReader -> readLine(): 按行读取文件,直到读取内容==null FileInputStream -> read ...
- web打开本地文件并读取内容
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- web端访问文件没有权限的问题
背景 : ftp的PHP项目中的某些文件没有写入的权限..系统报注意错误!!! 原因 : 一般情况下,web端访问网站一般使用的是WWW权限(有限制的权限组)去访问, 但是我们编程开发的时候, 有可能 ...
- Servlet接口的实现类,路径配置映射,ServletConfig对象,ServletContext对象及web工程中文件的读取
一,Servlet接口实现类:sun公司为Servlet接口定义了两个默认的实现类,分别为:GenericServlet和HttpServlet. HttpServlet:指能够处理HTTP请求的se ...
- FileOutputStream字节输出流和FileInputStream输入流(切记:out是输出到本地中,in是输入到程序中)这里介绍大文件和小文件的读取方式
//FileOutputStream public class FileOutputStreamDemo { /**字节流:适用于任何文件,以字节为单位,进行读写操作 *字节流操作步骤: *1.创 ...
- 多个yml文件的读取方式
1配置pom.xml文件,以下配置将默认激活-dev.yml配置文件<profiles> <profile> <id>dev&l ...
- web端图片文件直传
采用JS客户端直接签名有一个很严重的安全隐患.就是OSS AccessId/AccessKey暴露在前端页面.可以随意拿到AccessId/AccessKey,这是非常不安全的做法. 本文将此例子进化 ...
- Python文件处理之文件读取方式(二)
Python的open文件的读取方式有以下几种方法: read([size]):读取文件,如果传了size参数,则读取size字节,否则读取全部 readline([size]):读取一行 readl ...
- web端、android端的文件上传
1.web端的文件上传. 这里是利用了第三方的jar包.这里所需要的jar包我已经上传到本博客的资源里了,以下是连接 http://download.csdn.net/detail/caihongsh ...
随机推荐
- java面试笔试题大汇总
第一,谈谈final, finally, finalize的区别. 最常被问到. 第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以 ...
- JavaScript脚本放在哪里用户体验好
javascript代码写在<head>里面: 由于这时候网页主体(body)还未加载,所以这里适合放一些不是立即执行的自定义函数,立即执行的语句则很可能会出错(视浏览器而定) javas ...
- Linux的pwd命令详解
在Linux层次结构中,用户可以在被授权的任意目录下利用mkdir命令创建新目录,也可以利用cd命令从一个目录转换到另一个目录.然而,没有提示符来告知用户目前处于哪一个目录中.想要知道当前所处的目录, ...
- Node笔记三
global --类似与客户端javascript运行环境中的window process --用于获取当前node进程信息,一般用于获取环境变量之类的信息 console --node中内置的con ...
- Visual Studio 和 c# 正则表达式
今天集中说说VS生产环境下的正则. Visual Sturdio 2012以上版本查找替换 对于VS的正则,准确说,是VS2012之后的IDE下VS的正则. VS的查找和替换功能支持基础的正则表达式, ...
- java面试总结
一.java的集合框架 HashMap.HashTable.CurrentHashMap的底层数据结构与区别? CurrentHashMap与HashTable是如何保证线程安全的? ArrayLis ...
- Java io使用简介
图:Java io概览图 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更 ...
- Python_文件与文件夹操作
''' os模块除了提供使用操作系统功能和访问文件系统的简便方法之外,还提供了大量文件与文件夹操作的方法. os.path模块提供了大量用于路径判断.切分.连接以及文件夹遍历的方法. shutil模块 ...
- vsts + XX云服务器构建netcore+docker持续集成交付部署
持续集成交付部署是什么意思,它给我们带来什么好处? 先贴一张图 持续集成(Continuous Integration) 持续集成强调开发人员提交了新代码之后,立刻进行构建.(单元)测试(这个要看情况 ...
- Maven通俗讲解
也许是本人不才,初识Maven时,被各种不明所以的教程搞得一头雾水,而在后来的使用中,我发现Maven大部分功能没有想象的那么困难. 本片文章面向Maven初学者,希望能让其以最快的速度了解Maven ...