⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 java的网络知识.txt

📁 含有许多JAVA的技巧!
💻 TXT
📖 第 1 页 / 共 2 页
字号:
port=8080  
ref=INSTALL  
使用过程getRef()应当注意:在JDK1.02以前的版本中,过程getRef()仅对以下两个构造过程创建的URL有效:  
URL(String absoluteURLSpecification);  
URL (URL baseURL,String relativeURLSpecification);  
例如,假设你使用下面的语句创建了一个URL:  
URL linuxaid=new URL(“http://www.linuxaid.com.cn/”);  
URL linuxaidAnimationBottom=new URL(gamelan,”linuxaid.animation.html#BOTTOM”);  
当你对linuxaidAnimationBottom调用过程getRef()时,它正确地返回”BOTTOM”。但你如果使用下面的语句创建一个指向同一资源的URL:  
URL linuxaidAnimationBottom = new URL(“http”,”www.linuxaid.com.cn”,”linuxaid.animation.html#BOTTOM”);  
当调用过程getRef()从上面语句所创建的linuxaidAnimationbottom中获取信息时,getRef()返回null,而不能返回正确值“BOTTOM”。  
五、直接从一个URL读入  
在成功创建了一个URL以后,就可以调用URL的过程openStream()以获取一个流,并从这个流中读入URL的内容。过程openStream()返回一个InputStream对象,因此,可以使用  
一般的InputStream过程读入。本书第2.9节描述了Java开发环境提供的I/O类及其使用方法。  
从一个URL中读入就如同从一个输入流中读入一样容易。下面的Java程序openStreamTest使用过程openStream()得到URL http://www.javaworld.com/ 上的一个输入流,然后从这个  
输入流中读入URL的内容,并显示在屏幕上。  
Import java.net.*;  
Import java.io.*;  
Class OpenStreamTest{  
Public static void main(String[] args){  
Try{  
URL url = new URL(http://www.javaworld.com/);  
DataInputStream dis = new DataInputStream(url.openStream());  
String str;  
While((str=dis.readLine())!=null)  
System.out.println(str);  
Dis.close();  
}catch (MalformedURLException e){  
System.err..println(“MalformedURLException:”+e);  
}catch (IOException e){  
System.err.pintln(“IOException:”+e);  
}  
}  
}  
}  
当运行程序时,就会看到在http://www.javaworld.com/的HTML文件中的HTML命令以及文本内容滚动显示在窗口中。或者,你可能看到:  
IOException:java.net.UnknownHostException:www.javaworld.com  
上面这条信息说明:可能需要对你的系统进行必要的设置,才能使你的程序能够找到www.javaworld.com服务器。  
除了上面提到的过程openStream(),类URL还提供了过程getContent(),它可以直接获取URL指向的资源。下面给出的程序Fetch展示了使用过程getContent()具体方法。  
import java.net.*;  
import java.awt.*;  
import java.io.*;  
import java.awt.image.*;  

public class Fetch{  
public static String fetch(String addr)  
throws MalformedURLException,IOException{  
URL url = new URL(addr);  
Return (String)(url.getContent());  
}  

public static Image fetchImage(String addr,Component comp)  
throws MalformedURLException,IOException{  
URL url = new URL(addr);  
Return comp.createImage((ImageProducer)(url.getContent()));  
}  

public static void main(String[] args)  
throws MalformedURLException,IOException{  
System.out.println(fetch(args[0]));  
}  
}  

Fetch只能下载普通的文本文件(非HTML文件或其它类型的文本文件)。在类Fetch中还包括了一个过程fetchImage(),它可以下载GIF或其它常见格式的图像,你可以使  
用下面给出的程序FetchImageTest来进行测试。  
import java.awt.*;  
import java.awt.image.*;  
import java.net.*;  
import java.io.*;  

public class FetchImageTest extends Frame{  
private Image img;  

public void paint(Graphics g){  
g.drawImage(img,0,0,this);  
}  
public static void main(String)[] args)  
throws MalformedURLException,IOException{  
FetchImageTest window = new FetchImageTest();  
window.img = Fetch.fetchImage(args[0],window);  
window.resize(300,300);  
window.show();  
}  
}  
在编译完该程序之后,你可以采用以下命令运行该程序:  
java FetchImageTest http://www.javaworld.com/jw-10-1996/jeeves.sm.gif  
请注意:普通文本文件和图象文件的下载依赖于Java实现的内部“内容处理器”。在JDK环境中,这两个示例程序均可以正常工作,但并不意味着在其它的Java实现下也能工  
作,对于那些没有包含合适的内容处理器的Java实现而言,这两个程序就不能工作。如果程序遇到了不支持的内容类型,程序将抛出异常并退出。  
这两个程序只是为了说明过程getContent()的用法。一般情况下,这不是通过网络加载文本或图象的最好途径,例如,类Applet的过程loadImage()就是一个更好的选择。  
六、连接至一个URL  
在成功地创建了一个URL以后,就可以调用URL的openConnection()过程连接至该URL。当连接至一个URL之后,就通过计算机网络在Java程序与URL之间建立了一个通信  
链接。  
过程openConnection()创建一个新的URLConnection对象(如果不存在一个合适的),对它进行初始化,连接至URL,并返回URLConnection对象。如果这个过程中某个环节  
出了问题(例如:服务器已关闭了),过程openConnetion()将抛出一个IOException异常。  
如果已经成功地连接至希望的URL,就能够使用URLConnection对象进行对连接的读写操作,或者查询关于它的内容的信息。下面会介绍如何对一个URLconnection进行读  
写操作。下面给出的程序GetURLInfo首先连接至URLhttp://www.javaworld.com,然后查询URLConnectction对象的有关信息。  
import java.net.*;  
import.java.io.*;  
import java.util.*;  

public class GetURLInfo{  
public static void printInfo(URLConnection uc){  
try{  
System.out.println(uc.getURL().toExternalForm()+”:”);  
System.out.println(“ Content Type:” +uc.getContentType());  
System.out.println(“Content Length:”+uc.getContentLength());  
System.out.println(“Last Modified:”+new Date(uc.getLastModified()));

本栏文章均来自于互联网,版权归原作者和各发布网站所有,本站收集这些文章仅供学习参考之用。任何人都不能将这些文章用于商业或者其他目的。( ProgramFan.Com )
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -